Index: source/ariba/overlay/modules/onehop/OneHop.cpp
===================================================================
--- source/ariba/overlay/modules/onehop/OneHop.cpp	(revision 3067)
+++ source/ariba/overlay/modules/onehop/OneHop.cpp	(revision 3690)
@@ -1,3 +1,3 @@
-// [Licence]
+// [License]
 // The Ariba-Underlay Copyright
 //
@@ -35,8 +35,12 @@
 // official policies, either expressed or implied, of the Institute of
 // Telematics.
-// [Licence]
+// [License]
 
 #include "OneHop.h"
 #include "ariba/overlay/BaseOverlay.h"
+
+#include "ariba/overlay/modules/onehop/messages/OneHopMessage.h"
+#include "ariba/overlay/modules/onehop/messages/NodeListingRequest.h"
+#include "ariba/overlay/modules/onehop/messages/NodeListingReply.h"
 
 namespace ariba {
@@ -84,13 +88,13 @@
 		return;
 	}
-
-	baseoverlay.sendMessage( msg, i->second );
-}
-
-void OneHop::createOverlay(){
-
+	OneHopMessage onehopRoute( OneHopMessage::OneHopMessageTypeRoute );
+	onehopRoute.encapsulate(msg);
+
+	baseoverlay.sendMessage( &onehopRoute, i->second );
+}
+
+void OneHop::createOverlay() {
 	// don't need to bootstrap against ourselfs.
 	// the create and join process is completed now.
-
 	logging_info( "creating onehop overlay structure" );
 	state = OneHopStateCompleted;
@@ -119,5 +123,5 @@
 void OneHop::joinOverlay(const EndpointDescriptor& bootstrapEp){
 
-	logging_info( "joining onehop overlay structure through endpoint " <<
+	logging_info( "joining onehop overlay structure through end-point " <<
 			(bootstrapEp == EndpointDescriptor::UNSPECIFIED ?
 					"local" : bootstrapEp.toString()) );
@@ -133,8 +137,5 @@
 
 		state = OneHopStateCompleted;
-
-
 	} else {
-
 		bootstrapLink = baseoverlay.establishLink( bootstrapEp,
 					OverlayInterface::OVERLAY_SERVICE_ID );
@@ -175,8 +176,5 @@
 	if( state == OneHopStateInvalid ) return;
 
-	//
 	// node went down, remove from overlay mapping
-	//
-
 	logging_debug( "node " << remote.toString() << " left overlay structure" );
 
@@ -223,5 +221,5 @@
 	//
 
-	if( onemsg->isType( OneHopMessage::OneHopMessageTypeListingRequest) ){
+	if( onemsg->isType( OneHopMessage::OneHopMessageTypeListingRequest ) ){
 
 		NodeListingRequest* request = onemsg->decapsulate<NodeListingRequest>();
@@ -316,4 +314,10 @@
 	} // if( reply != NULL )
 
+	if( onemsg->isType( OneHopMessage::OneHopMessageTypeRoute) ){
+		logging_debug( "Route message arrived at destination node -> delegate to BaseOverlay" );
+		baseoverlay.incomingRouteMessage( onemsg );
+	}
+
+
 }
 
Index: source/ariba/overlay/modules/onehop/OneHop.h
===================================================================
--- source/ariba/overlay/modules/onehop/OneHop.h	(revision 3067)
+++ source/ariba/overlay/modules/onehop/OneHop.h	(revision 3690)
@@ -1,3 +1,3 @@
-// [Licence]
+// [License]
 // The Ariba-Underlay Copyright
 //
@@ -35,5 +35,5 @@
 // official policies, either expressed or implied, of the Institute of
 // Telematics.
-// [Licence]
+// [License]
 
 #ifndef _ONE_HOP_H
@@ -42,77 +42,68 @@
 #include <map>
 #include "ariba/overlay/modules/OverlayInterface.h"
-#include "ariba/overlay/modules/onehop/messages/OneHopMessage.h"
-#include "ariba/overlay/modules/onehop/messages/NodeListingRequest.h"
-#include "ariba/overlay/modules/onehop/messages/NodeListingReply.h"
 #include "ariba/utility/logging/Logging.h"
 
 using std::map;
-using ariba::overlay::OverlayInterface;
-using ariba::overlay::OneHopMessage;
-using ariba::overlay::NodeListingRequest;
-using ariba::overlay::NodeListingReply;
 
 namespace ariba {
 namespace overlay {
 
-class OneHop : public OverlayInterface {
+class OneHop: public OverlayInterface {
 	use_logging_h( OneHop );
 public:
-	OneHop(
-		BaseOverlay& _overlay,
-		const NodeID& _nodeid,
-		OverlayStructureEvents* _eventsReceiver
-	);
+	OneHop(BaseOverlay& _overlay, const NodeID& _nodeid,
+			OverlayStructureEvents* _eventsReceiver);
 
 	virtual ~OneHop();
 
 protected:
+	/// @see OverlayInterface.h
+	virtual void createOverlay();
 
-	//
-	// OverlayInterface.h
-	//
-
-	virtual void createOverlay();
+	/// @see OverlayInterface.h
 	virtual void deleteOverlay();
 
-	virtual void joinOverlay(const EndpointDescriptor& bootstrapEp = EndpointDescriptor::UNSPECIFIED);
+	/// @see OverlayInterface.h
+	virtual void joinOverlay(const EndpointDescriptor& boot =
+			EndpointDescriptor::UNSPECIFIED);
+
+	/// @see OverlayInterface.h
 	virtual void leaveOverlay();
 
-	virtual const EndpointDescriptor& resolveNode( const NodeID& node );
-	virtual void routeMessage( const NodeID& destnode, Message* msg );
+	/// @see OverlayInterface.h
+	virtual const EndpointDescriptor& resolveNode(const NodeID& node);
 
+	/// @see OverlayInterface.h
+	virtual void routeMessage(const NodeID& destnode, Message* msg);
+
+	/// @see OverlayInterface.h
 	virtual NodeList getKnownNodes() const;
 
-	//
-	// see CommunicationListener.h or OverlayInterface.h
-	//
+	/// @see CommunicationListener.h or @see OverlayInterface.h
+	virtual void onLinkUp(const LinkID& lnk, const NodeID& remote);
 
-	virtual void onLinkUp(const LinkID& lnk, const NodeID& remote);
+	/// @see CommunicationListener.h or @see OverlayInterface.h
 	virtual void onLinkDown(const LinkID& lnk, const NodeID& remote);
-	virtual void onMessage(const DataMessage& msg, const NodeID& remote, const LinkID& lnk = LinkID::UNSPECIFIED);
+
+	/// @see CommunicationListener.h or @see OverlayInterface.h
+	virtual void onMessage(const DataMessage& msg, const NodeID& remote,
+			const LinkID& lnk = LinkID::UNSPECIFIED);
 
 private:
-
-	/**
-	 * The other nodes in the overlay
-	 */
-	typedef map<const NodeID,const LinkID> OverlayNodeMapping;
+	/// The other nodes in the overlay
+	typedef map<const NodeID, const LinkID> OverlayNodeMapping;
 	OverlayNodeMapping overlayNodes;
 
-	/**
-	 * The current state of the overlay
-	 */
+	/// The current state of the overlay
 	typedef enum _OneHopState {
-		OneHopStateInvalid                = 0,
-		OneHopStateJoinInitiated          = 1,
-		OneHopStateJoinListingRequested   = 2,
-		OneHopStateCompleted              = 3,
+		OneHopStateInvalid = 0,
+		OneHopStateJoinInitiated = 1,
+		OneHopStateJoinListingRequested = 2,
+		OneHopStateCompleted = 3,
 	} OneHopState;
 
 	OneHopState state;
-
 	uint16_t pendingLinks;
 	LinkID bootstrapLink;
-
 };
 
Index: source/ariba/overlay/modules/onehop/messages/NodeListingReply.cpp
===================================================================
--- source/ariba/overlay/modules/onehop/messages/NodeListingReply.cpp	(revision 3067)
+++ source/ariba/overlay/modules/onehop/messages/NodeListingReply.cpp	(revision 3690)
@@ -1,3 +1,3 @@
-// [Licence]
+// [License]
 // The Ariba-Underlay Copyright
 //
@@ -35,5 +35,5 @@
 // official policies, either expressed or implied, of the Institute of
 // Telematics.
-// [Licence]
+// [License]
 
 #include "NodeListingReply.h"
Index: source/ariba/overlay/modules/onehop/messages/NodeListingReply.h
===================================================================
--- source/ariba/overlay/modules/onehop/messages/NodeListingReply.h	(revision 3067)
+++ source/ariba/overlay/modules/onehop/messages/NodeListingReply.h	(revision 3690)
@@ -1,3 +1,3 @@
-// [Licence]
+// [License]
 // The Ariba-Underlay Copyright
 //
@@ -35,5 +35,5 @@
 // official policies, either expressed or implied, of the Institute of
 // Telematics.
-// [Licence]
+// [License]
 
 #ifndef NODE_LISTING_REPLY_H__
@@ -77,13 +77,9 @@
 
 sznBeginDefault( ariba::overlay::NodeListingReply, X ) {
-	uint16_t len = X.isSerializer() ? descriptors.size() : 0;
+	uint16_t len = descriptors.size();
 	X && len;
-	if (X.isDeserializer()) {
-		descriptors.resize(len);
-	}
-	for (int i=0; i<len; i++) {
-		if (X.isDeserializer()) descriptors[i].second = new EndpointDescriptor();
-		X && &descriptors[i].first && reinterpret_cast<VSerializeable*>(descriptors[i].second);
-	}
+	if (X.isDeserializer())	descriptors.resize(len);
+	for (int i=0; i<len; i++)
+		X && &descriptors[i].first && VO(descriptors[i].second);
 } sznEnd();
 
Index: source/ariba/overlay/modules/onehop/messages/NodeListingRequest.cpp
===================================================================
--- source/ariba/overlay/modules/onehop/messages/NodeListingRequest.cpp	(revision 3067)
+++ source/ariba/overlay/modules/onehop/messages/NodeListingRequest.cpp	(revision 3690)
@@ -1,3 +1,3 @@
-// [Licence]
+// [License]
 // The Ariba-Underlay Copyright
 //
@@ -35,5 +35,5 @@
 // official policies, either expressed or implied, of the Institute of
 // Telematics.
-// [Licence]
+// [License]
 
 #include "NodeListingRequest.h"
Index: source/ariba/overlay/modules/onehop/messages/NodeListingRequest.h
===================================================================
--- source/ariba/overlay/modules/onehop/messages/NodeListingRequest.h	(revision 3067)
+++ source/ariba/overlay/modules/onehop/messages/NodeListingRequest.h	(revision 3690)
@@ -1,3 +1,3 @@
-// [Licence]
+// [License]
 // The Ariba-Underlay Copyright
 //
@@ -35,5 +35,5 @@
 // official policies, either expressed or implied, of the Institute of
 // Telematics.
-// [Licence]
+// [License]
 
 #ifndef NODE_LISTING_REQUEST_H__
Index: source/ariba/overlay/modules/onehop/messages/OneHopMessage.cpp
===================================================================
--- source/ariba/overlay/modules/onehop/messages/OneHopMessage.cpp	(revision 3067)
+++ source/ariba/overlay/modules/onehop/messages/OneHopMessage.cpp	(revision 3690)
@@ -1,3 +1,3 @@
-// [Licence]
+// [License]
 // The Ariba-Underlay Copyright
 //
@@ -35,5 +35,5 @@
 // official policies, either expressed or implied, of the Institute of
 // Telematics.
-// [Licence]
+// [License]
 
 #include "OneHopMessage.h"
Index: source/ariba/overlay/modules/onehop/messages/OneHopMessage.h
===================================================================
--- source/ariba/overlay/modules/onehop/messages/OneHopMessage.h	(revision 3067)
+++ source/ariba/overlay/modules/onehop/messages/OneHopMessage.h	(revision 3690)
@@ -1,3 +1,3 @@
-// [Licence]
+// [License]
 // The Ariba-Underlay Copyright
 //
@@ -35,5 +35,5 @@
 // official policies, either expressed or implied, of the Institute of
 // Telematics.
-// [Licence]
+// [License]
 
 #ifndef __ONE_HOP_MESSAGE_H
@@ -57,4 +57,5 @@
 		OneHopMessageTypeListingRequest = 1,
 		OneHopMessageTypeListingReply   = 2,
+		OneHopMessageTypeRoute	        = 3,
 	} OneHopMessageType;
 
