Index: source/ariba/utility/misc/Demultiplexer.hpp
===================================================================
--- source/ariba/utility/misc/Demultiplexer.hpp	(revision 3690)
+++ source/ariba/utility/misc/Demultiplexer.hpp	(revision 3705)
@@ -80,5 +80,5 @@
 			LISTENER_SERVICE_MAP_CITERATOR i = mapListenerService.begin();
 			LISTENER_SERVICE_MAP_CITERATOR iend = mapListenerService.end();
-			
+
 			for( ; i != iend; i++ )
 				cout << "xxx" << i->first.toString() << " -> " << i->second << std::endl;
@@ -88,5 +88,5 @@
 			SERVICE_LISTENER_MAP_CITERATOR i = mapServiceListener.begin();
 			SERVICE_LISTENER_MAP_CITERATOR iend = mapServiceListener.end();
-			
+
 			for( ; i != iend; i++ )
 				cout << "xxx" << i->first << " -> " << i->second.toString() << std::endl;
@@ -112,5 +112,5 @@
 	void unregisterItem( S id ) {
 		T listener = get( id );
-		
+
 		{
 			boost::mutex::scoped_lock lock( mapMutex );
Index: source/ariba/utility/types/Identifier.cpp
===================================================================
--- source/ariba/utility/types/Identifier.cpp	(revision 3690)
+++ source/ariba/utility/types/Identifier.cpp	(revision 3705)
@@ -319,5 +319,9 @@
 }
 bool Identifier::operator==(const Identifier& compKey) const {
-	return compareTo(compKey) == 0;
+
+	if( this->isUnspecified() && compKey.isUnspecified() )
+		return true;
+	else
+		return compareTo(compKey) == 0;
 }
 bool Identifier::operator!=(const Identifier& compKey) const {
@@ -599,5 +603,5 @@
 	//as mpn_random has no seeding function
 	// we mess aroung here a little to achive some randomness
-	// using the rand function that _is_ seeded in the 
+	// using the rand function that _is_ seeded in the
 	// StartupWrapper::initSystem function
 
