diff --git a/src/signal-caster-py.cc b/src/signal-caster-py.cc
new file mode 100644
index 0000000000000000000000000000000000000000..dfb4ed21bbb95c36b572b137a9e5f03c3d6a634a
--- /dev/null
+++ b/src/signal-caster-py.cc
@@ -0,0 +1,40 @@
+/*
+ *  Copyright 2010 (C) CNRS
+ *  Author: Florent Lamiraux
+ */
+
+#include <Python.h>
+#include <iostream>
+#include <sstream>
+
+#include <dynamic-graph/signal-caster.h>
+
+namespace dynamicgraph {
+  namespace python {
+
+    extern PyObject* error;
+
+    namespace signalCaster {
+      PyObject* getSignalTypeList(PyObject* self, PyObject* args)
+      {
+	void * pointer = NULL;
+	PyObject* object = NULL;
+
+	if (!PyArg_ParseTuple(args, ""))
+	  return NULL;
+	std::vector<std::string> typeList =
+	  dynamicgraph::g_caster.listTypenames();
+	unsigned int typeNumber = typeList.size();
+	// Build a tuple object
+	PyObject* typeTuple = PyTuple_New(typeNumber);
+
+	for (unsigned int iType = 0; iType < typeNumber; iType++) {
+	  PyObject* className = Py_BuildValue("s", typeList[iType].c_str());
+	  PyTuple_SetItem(typeTuple, iType, className);
+	}
+
+	return Py_BuildValue("O", typeTuple);
+      }
+    } //namespace signalCaster
+  } // namespace dynamicgraph
+} // namespace python