Index: trunk/FACT++/src/ServiceList.cc
===================================================================
--- trunk/FACT++/src/ServiceList.cc	(revision 10338)
+++ trunk/FACT++/src/ServiceList.cc	(revision 10339)
@@ -607,15 +607,24 @@
 //!    ostream to which the output is send.
 //
-void ServiceList::PrintDescription(std::ostream &out) const
-{
+int ServiceList::PrintDescription(std::ostream &out, const string &serv, const string &service) const
+{
+    int rc = 0;
     for (ServiceMap::const_iterator i=fServiceList.begin(); i!=fServiceList.end(); i++)
     {
         const string &server = i->first;
+
+        if (!serv.empty() && server!=serv)
+            continue;
+
+        out << "" << kRed << "----- " << server << " -----" << endl;
+
         const vector<string> &lst = i->second;
-
-        out << "" << kRed << "----- " << server << " -----" << endl;
-
         for (vector<string>::const_iterator s=lst.begin(); s!=lst.end(); s++)
         {
+            if (!service.empty() && *s!=service)
+                continue;
+
+            rc++;
+
             out << " " << *s;
 
@@ -655,4 +664,6 @@
         out << endl;
     }
+
+    return rc;
 }
 
Index: trunk/FACT++/src/ServiceList.h
===================================================================
--- trunk/FACT++/src/ServiceList.h	(revision 10338)
+++ trunk/FACT++/src/ServiceList.h	(revision 10339)
@@ -77,8 +77,8 @@
     void PrintServerList(std::ostream &out) const;
     void PrintServiceList(std::ostream &out) const;
-    void PrintDescription(std::ostream &out) const;
+    int  PrintDescription(std::ostream &out, const std::string &serv="", const std::string &svc="") const;
     void PrintServerList() const { PrintServerList(wout); }
     void PrintServiceList() const { PrintServiceList(wout); }
-    void PrintDescription() const { PrintDescription(wout); }
+    int  PrintDescription(const std::string &serv="", const std::string &svc="") const { return PrintDescription(wout, serv, svc); }
 
     static void DumpServiceList(std::ostream &out);
