diff --git a/src/ros_import.cpp b/src/ros_import.cpp
index 6fdde8ca62e87ad00f8a651716b469ed4490586a..d5e19af6ba40423eccec9c12431138a4b6938513 100644
--- a/src/ros_import.cpp
+++ b/src/ros_import.cpp
@@ -53,8 +53,7 @@ namespace dynamicgraph
       {
 	RosImport& entity =
 	  static_cast<RosImport&> (owner ());
-	entity.list ();
-	return Value ();
+	return Value (entity.list ());
       }
 
       Add::Add
@@ -134,16 +133,45 @@ namespace dynamicgraph
     signalRegistration (trigger_);
     trigger_.setNeedUpdateFromAllChildren (true);
 
-    std::string docstring;
+    std::string docstring =
+      "\n"
+      "  Add a signal importing data from a ROS topic\n"
+      "\n"
+      "  Input:\n"
+      "    - type: string among ['double', 'matrix', 'vector', 'vector3',\n"
+      "                          'vector3Stamped', 'matrixHomo', 'matrixHomoStamped',\n"
+      "                          'twist', 'twistStamped'],\n"
+      "    - signal: the signal name in dynamic-graph,\n"
+      "    - topic:  the topic name in ROS.\n"
+      "\n";
     addCommand ("add",
 		new command::rosImport::Add
 		(*this, docstring));
+    docstring =
+      "\n"
+      "  Remove a signal importing data from a ROS topic\n"
+      "\n"
+      "  Input:\n"
+      "    - name of the signal to remove (see method list for the list of signals).\n"
+      "\n";
     addCommand ("rm",
 		new command::rosImport::Rm
 		(*this, docstring));
+    docstring =
+      "\n"
+      "  Remove all signals importing data from a ROS topic\n"
+      "\n"
+      "  No input:\n"
+      "\n";
     addCommand ("clear",
 		new command::rosImport::Clear
 		(*this, docstring));
+    docstring =
+      "\n"
+      "  List signals importing data from a ROS topic\n"
+      "\n"
+      "  No input:\n"
+      "\n";
     addCommand ("list",
 		new command::rosImport::List
 		(*this, docstring));
@@ -163,10 +191,16 @@ namespace dynamicgraph
     bindedSignal_.erase (signal);
   }
 
-  void RosImport::list ()
+  std::string RosImport::list () const
   {
-    std::cout << CLASS_NAME << std::endl;
-  }
+    std::string result("[");
+    for (std::map<std::string, bindedSignal_t>::const_iterator it =
+	   bindedSignal_.begin (); it != bindedSignal_.end (); it++) {
+      result += "'" + it->first + "',";
+    }
+    result += "]";
+    return result;
+ }
 
   void RosImport::clear ()
   {
diff --git a/src/ros_import.hh b/src/ros_import.hh
index c42723aac538638adf44bd14a53f20e133ff724f..368b944ce25ffd0a7a0a46d18237b627ebe106be 100644
--- a/src/ros_import.hh
+++ b/src/ros_import.hh
@@ -69,7 +69,7 @@ namespace dynamicgraph
 
     void add (const std::string& signal, const std::string& topic);
     void rm (const std::string& signal);
-    void list ();
+    std::string list () const;
     void clear ();
 
     int& trigger (int&, int);