diff --git a/src/dynamic-graph-py.cc b/src/dynamic-graph-py.cc
index 86485c786b33845c307d104717dfbc691640cd72..acaaf290d2efa6effad865e937ca0daefee96b7b 100644
--- a/src/dynamic-graph-py.cc
+++ b/src/dynamic-graph-py.cc
@@ -33,6 +33,7 @@ namespace dynamicgraph {
       extern PyObject* getTime(PyObject* self, PyObject* args);
       extern PyObject* setTime(PyObject* self, PyObject* args);
       extern PyObject* getName(PyObject* self, PyObject* args);
+      extern PyObject* getClassName(PyObject* self, PyObject* args);
       extern PyObject* display(PyObject* self, PyObject* args);
       extern PyObject* displayDependencies(PyObject* self, PyObject* args);
       extern PyObject* getValue(PyObject* self, PyObject* args);
@@ -151,6 +152,8 @@ static PyMethodDef dynamicGraphMethods[] = {
    METH_VARARGS, "Set time of  a SignalBase"},
   {"signal_base_get_name", dynamicgraph::python::signalBase::getName,
    METH_VARARGS, "Get the name of a signal"},
+  {"signal_base_get_class_name", dynamicgraph::python::signalBase::getClassName,
+   METH_VARARGS, "Get the class name of a signal"},
   {"signal_base_display", dynamicgraph::python::signalBase::display,
    METH_VARARGS, "Print the signal in a string"},
   {"signal_base_display_dependencies", dynamicgraph::python::signalBase::displayDependencies,
diff --git a/src/dynamic_graph/signal_base.py b/src/dynamic_graph/signal_base.py
index a769e4b228f1be04aabd767e00e8abf070102226..1894d9e505c2dce718efe9c6bba2b946ad6ce767 100644
--- a/src/dynamic_graph/signal_base.py
+++ b/src/dynamic_graph/signal_base.py
@@ -165,7 +165,7 @@ class SignalBase (object) :
             raise RuntimeError(
                 "A pointer is required to create SignalBase object.")
         self.name=self.getName()
-
+        self.className=self.getClassName()
     @property
     def time(self) :
         """
@@ -222,6 +222,12 @@ class SignalBase (object) :
         """
         return wrap.signal_base_get_name(self.obj)
 
+    def getClassName(self):
+        """
+        Get class name of signal
+        """
+        return wrap.signal_base_get_class_name(self.obj)
+
     def recompute(self, time):
         """
         Force signal to recompute the value at given time.