Index: source/ariba/communication/messages/AribaBaseMsg.cpp
===================================================================
--- source/ariba/communication/messages/AribaBaseMsg.cpp	(revision 9684)
+++ source/ariba/communication/messages/AribaBaseMsg.cpp	(revision 9694)
@@ -44,6 +44,8 @@
 vsznDefault(AribaBaseMsg);
 
-AribaBaseMsg::AribaBaseMsg( type_ _type, LinkID link ) :
-	type((uint8_t)_type), link(link){
+AribaBaseMsg::AribaBaseMsg( type_ _type,
+	const LinkID& localLink, const LinkID& remoteLink ) :
+	type((uint8_t)_type),
+	localLink(localLink),remoteLink(remoteLink) {
 }
 
Index: source/ariba/communication/messages/AribaBaseMsg.h
===================================================================
--- source/ariba/communication/messages/AribaBaseMsg.h	(revision 9684)
+++ source/ariba/communication/messages/AribaBaseMsg.h	(revision 9694)
@@ -41,9 +41,7 @@
 
 #include <string>
-#include <stdint.h>
-
+#include <boost/cstdint.hpp>
 #include "ariba/utility/messages.h"
 #include "ariba/utility/serialization.h"
-
 #include "ariba/utility/types/LinkID.h"
 #include "ariba/utility/types/Address.h"
@@ -74,5 +72,8 @@
 	};
 
-	AribaBaseMsg( type_ type = typeData, LinkID link = LinkID::UNSPECIFIED );
+	AribaBaseMsg( type_ type = typeData,
+			const LinkID& localLink = LinkID::UNSPECIFIED,
+			const LinkID& remoteLink = LinkID::UNSPECIFIED );
+
 	virtual ~AribaBaseMsg();
 
@@ -83,6 +84,10 @@
 	}
 
-	const LinkID& getLink() const {
-		return link;
+	const LinkID& getLocalLink() const {
+		return localLink;
+	}
+
+	const LinkID& getRemoteLink() const {
+		return remoteLink;
 	}
 
@@ -96,11 +101,11 @@
 
 private:
-	// link message type
-	uint8_t type;
+	uint8_t type;		// the link message type
 
-	// link identifier
-	LinkID  link;
+	// remote and local link ids
+	LinkID localLink;	// the local link id
+	LinkID remoteLink;	// the remote link id
 
-	// remote and local endpoint descriptors (link reply/request only)
+	// remote and local endpoint descriptors
 	EndpointDescriptor localDescriptor;
 	EndpointDescriptor remoteDescriptor;
@@ -110,8 +115,7 @@
 
 sznBeginDefault( ariba::communication::AribaBaseMsg, X ) {
-	X && type && link;
-	if (type == typeLinkReply || type == typeLinkRequest) {
+	X && type && &localLink && &remoteLink;
+	if (type == typeLinkReply || type == typeLinkRequest)
 		X && localDescriptor && remoteDescriptor;
-	}
 	X && Payload();
 } sznEnd();
