Index: source/ariba/overlay/BaseOverlay.cpp
===================================================================
--- source/ariba/overlay/BaseOverlay.cpp	(revision 5921)
+++ source/ariba/overlay/BaseOverlay.cpp	(revision 5924)
@@ -204,26 +204,34 @@
 std::string BaseOverlay::getLinkHTMLInfo() {
 	std::ostringstream s;
-
-	s << "<h2 color=\"#606060\">Links</h2>";
-	s << "<table width=\"100%\" cellpadding=\"0\" border=\"0\" cellspacing=\"0\">";
-	s << "<tr background=\"#e0e0e0\">";
-	s << "<td>Id</td><td>Remote</td><td>Path</td>";
-	s << "</tr>";
-
-	BOOST_FOREACH( LinkDescriptor* ld, links ) {
-		if (!ld->isVital() || ld->service != OverlayInterface::OVERLAY_SERVICE_ID) continue;
-		s << "<tr>";
-		s << "<td>" << ld->overlayId.toString().substr(0,4) << "..</td>";
-		s << "<td>" << ld->remoteNode.toString().substr(0,4) << "..</td>";
-		s << "<td>";
-		if (ld->routeRecord.size()>0) {
-			for (size_t i=0; i<ld->routeRecord.size(); i++)
-				s << ld->routeRecord[i].toString().substr(0,4) << ".. ";
-		}
-		s << "</td>";
+	vector<NodeID> nodes;
+	if (links.size()==0) {
+		s << "<h2 color=\"#606060\">No links established!</h2>";
+	} else {
+		s << "<h2 color=\"#606060\">Links</h2>";
+		s << "<table width=\"100%\" cellpadding=\"0\" border=\"0\" cellspacing=\"0\">";
+		s << "<tr background=\"#e0e0e0\">";
+		s << "<td>Id</td><td>Remote</td><td>Path</td>";
 		s << "</tr>";
-	}
-	s << "</table>";
-
+
+		BOOST_FOREACH( LinkDescriptor* ld, links ) {
+			if (!ld->isVital() || ld->service != OverlayInterface::OVERLAY_SERVICE_ID) continue;
+			bool found = false;
+			BOOST_FOREACH(NodeID& id, nodes)
+				if (id  == ld->remoteNode) found = true;
+			if (found) continue;
+			nodes.push_back(ld->remoteNode);
+			s << "<tr>";
+			s << "<td>" << ld->overlayId.toString().substr(0,4) << "..</td>";
+			s << "<td>" << ld->remoteNode.toString().substr(0,4) << "..</td>";
+			s << "<td>";
+			if (ld->routeRecord.size()>0) {
+				for (size_t i=0; i<ld->routeRecord.size(); i++)
+					s << ld->routeRecord[i].toString().substr(0,4) << ".. ";
+			}
+			s << "</td>";
+			s << "</tr>";
+		}
+		s << "</table>";
+	}
 	return s.str();
 }
