diff --git a/include/dynamic-graph/python/exception-python.hh b/include/dynamic-graph/python/exception-python.hh
new file mode 100644
index 0000000000000000000000000000000000000000..ad34ce03748a7dbe7912f0a4ec5c6e12a7bae525
--- /dev/null
+++ b/include/dynamic-graph/python/exception-python.hh
@@ -0,0 +1,62 @@
+// -*- mode: c++ -*-
+// Copyright 2010, François Bleibel, Thomas Moulard, Olivier Stasse,
+// JRL, CNRS/AIST.
+//
+// This file is part of dynamic-graph.
+// dynamic-graph is free software: you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public License
+// as published by the Free Software Foundation, either version 3 of
+// the License, or (at your option) any later version.
+//
+// dynamic-graph is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// General Lesser Public License for more details.  You should have
+// received a copy of the GNU Lesser General Public License along with
+// dynamic-graph. If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef DYNAMIC_GRAPH_PYTHON_EXCEPTION_PYTHON_H
+# define DYNAMIC_GRAPH_PYTHON_EXCEPTION_PYTHON_H
+# include <string>
+
+# include <dynamic-graph/fwd.hh>
+# include <dynamic-graph/dynamic-graph-api.h>
+# include <dynamic-graph/exception-abstract.h>
+
+namespace dynamicgraph {
+  namespace python {
+
+    /// \ingroup error
+    ///
+    /// \brief Generic error class.
+    class DYNAMIC_GRAPH_DLLAPI ExceptionPython : public ExceptionAbstract
+    {
+    public:
+      enum ErrorCodeEnum
+      {
+	GENERIC
+	,VALUE_PARSING
+	,VECTOR_PARSING
+	,MATRIX_PARSING
+      };
+
+      static const std::string EXCEPTION_NAME;
+
+      explicit ExceptionPython (const ExceptionPython::ErrorCodeEnum& errcode,
+				const std::string & msg = "");
+
+      ExceptionPython (const ExceptionPython::ErrorCodeEnum& errcode,
+		       const std::string& msg, const char* format, ...);
+
+      virtual ~ExceptionPython () throw ()
+      {}
+
+      virtual const std::string& getExceptionName () const
+      {
+	return ExceptionPython::EXCEPTION_NAME;
+      }
+    };
+  } // end of namespace python
+} // end of namespace dynamicgraph
+
+#endif //! DYNAMIC_GRAPH_PYTHON_EXCEPTION_PYTHON_H
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 7b1328457f0d3e79fcf492d8ee6d6437712ccfe0..42e4b2ac82cc303538d5b5bae3c2734db193585d 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -66,6 +66,7 @@ SET(PYTHON_MODULE wrap)
 
 ADD_LIBRARY(${PYTHON_MODULE}
 	MODULE
+	exception-python.cc
 	dynamic-graph-py.cc
 	signal-base-py.cc
 	entity-py.cc
diff --git a/src/exception-python.cc b/src/exception-python.cc
new file mode 100644
index 0000000000000000000000000000000000000000..84d59d1d0c54d8d0fb7b2ce79c005b5d07856658
--- /dev/null
+++ b/src/exception-python.cc
@@ -0,0 +1,75 @@
+/*
+ * Copyright 2010,
+ * François Bleibel,
+ * Olivier Stasse,
+ *
+ * CNRS/AIST
+ *
+ * This file is part of dynamic-graph.
+ * dynamic-graph is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ * dynamic-graph is distributed in the hope that it will be
+ * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.  You should
+ * have received a copy of the GNU Lesser General Public License along
+ * with dynamic-graph.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <dynamic-graph/python/exception-python.hh>
+#include <dynamic-graph/debug.h>
+#include <stdarg.h>
+#include <cstdio>
+
+namespace dynamicgraph {
+  namespace python {
+
+    /* --------------------------------------------------------------------- */
+    /* --- CLASS ----------------------------------------------------------- */
+    /* --------------------------------------------------------------------- */
+
+    const std::string ExceptionPython::EXCEPTION_NAME = "Python";
+
+    ExceptionPython::
+    ExceptionPython ( const ExceptionPython::ErrorCodeEnum& errcode,
+		      const std::string & msg )
+      :ExceptionAbstract(errcode,msg)
+    {
+      dgDEBUGF( 15,"Created with message <%s>.",msg.c_str ());
+      dgDEBUG( 1) <<"Created with message <%s>."<<msg<<std::endl;
+    }
+
+    ExceptionPython::
+    ExceptionPython ( const ExceptionPython::ErrorCodeEnum& errcode,
+		      const std::string & msg,const char* format, ... )
+      :ExceptionAbstract(errcode,msg)
+    {
+      va_list args;
+      va_start(args,format);
+
+      const unsigned int SIZE = 256;
+      char  buffer[SIZE];
+      vsnprintf(buffer,SIZE,format,args);
+
+      dgDEBUG(15) <<"Created "<<" with message <"
+		  <<msg<<"> and buffer <"<<buffer<<">. "<<std::endl;
+
+      message += buffer;
+
+      va_end(args);
+
+      dgDEBUG(1) << "Throw exception " << EXCEPTION_NAME << "[#" << errcode<<"]: "
+		 <<"<"<< message << ">."<<std::endl;
+
+    }
+
+  } // namespace dynamicgraph
+} // namespace python
+
+/*
+ * Local variables:
+ * c-basic-offset: 2
+ * End:
+ */