Index: source/ariba/communication/BaseCommunication.cpp
===================================================================
--- source/ariba/communication/BaseCommunication.cpp	(revision 3705)
+++ source/ariba/communication/BaseCommunication.cpp	(revision 3712)
@@ -217,10 +217,4 @@
 	}
 
-	// warn if this link has some queued messages attached
-	if( descriptor.waitingmsg.size() > 0 ){
-		logging_warn( "dropping link " << link.toString() <<
-			" that has " << descriptor.waitingmsg.size() << " waiting messages" );
-	}
-
 	// create message to drop the link
 	logging_debug( "sending out link close request. for us, the link is closed now" );
@@ -266,19 +260,12 @@
 	msg.encapsulate( const_cast<Message*>(message) );
 
-	if( linkDesc.linkup ){
-
-		// send message
-		transport->sendMessage( &msg );
-		return ++currentSeqnum;
-
-	} else {
-
-		// queue message
-		logging_info( "link " << lid.toString() << " is not up yet, queueing message" );
-		linkDesc.waitingmsg.push_back( new Message(msg) ); // TODO ooooo
-
-		return 0;
-
-	} // if( linkDesc.linkup )
+	if( !linkDesc.linkup ){
+		logging_error("cant send message on link " << lid.toString() << ", link not up");
+		return -1;
+	}
+
+	// send message
+	transport->sendMessage( &msg );
+	return ++currentSeqnum;
 }
 
@@ -466,15 +453,4 @@
 		}
 
-		if( linkDesc.waitingmsg.size() > 0 ){
-			logging_info( "sending out queued messages on link " << linkDesc.localLink.toString() );
-
-			BOOST_FOREACH( Message* msg, linkDesc.waitingmsg ){
-				sendMessage( linkDesc.localLink, msg );
-				delete msg;
-			}
-
-			linkDesc.waitingmsg.clear();
-		}
-
 	} // LINK_STATE_OPEN_REPLY
 
@@ -503,14 +479,4 @@
 			i->onLinkDown( linkDesc.localLink, linkDesc.localLocator, linkDesc.remoteLocator );
 		}
-
-		//
-		// delete all pending messages for the link that has been closed
-		//
-
-		BOOST_FOREACH( Message* msg, linkDesc.waitingmsg ){
-			delete msg;
-		}
-
-		linkDesc.waitingmsg.clear();
 
 		//
@@ -579,11 +545,5 @@
 		if( (*i).localLink != localLink) continue;
 
-		BOOST_FOREACH( Message* msg, i->waitingmsg ){
-			delete msg;
-		}
-
-		i->waitingmsg.clear();
 		linkSet.erase( i );
-
 		break;
 	}
Index: source/ariba/communication/BaseCommunication.h
===================================================================
--- source/ariba/communication/BaseCommunication.h	(revision 3705)
+++ source/ariba/communication/BaseCommunication.h	(revision 3712)
@@ -46,5 +46,4 @@
 #include <vector>
 #include <iostream>
-#include <deque>
 #include <algorithm>
 #include <boost/foreach.hpp>
@@ -78,5 +77,4 @@
 using std::map;
 using std::vector;
-using std::deque;
 using std::pair;
 using std::make_pair;
@@ -256,8 +254,4 @@
 			remoteEndpoint(desc.remoteEndpoint),
 			linkup(desc.linkup) {
-
-			BOOST_FOREACH( Message* msg, desc.waitingmsg ){
-				waitingmsg.push_back( msg );
-			}
 		}
 
@@ -266,12 +260,11 @@
 		}
 
-		LinkID 			localLink;
+		LinkID 					localLink;
 		const NetworkLocator* 	localLocator;
-		LinkID 			remoteLink;
+		LinkID 					remoteLink;
 		const NetworkLocator* 	remoteLocator;
-		EndpointDescriptor 	remoteEndpoint;
-
-		bool 			linkup;
-		deque<Message*>		waitingmsg;
+		EndpointDescriptor 		remoteEndpoint;
+
+		bool 					linkup;
 	};
 
