diff --git a/src/signal-base-py.cc b/src/signal-base-py.cc
index 159ae805cb32e13d3a884ed5562aa8388c0c849e..0381a914a752ec245691e8a3ceb52fcdbf34140d 100644
--- a/src/signal-base-py.cc
+++ b/src/signal-base-py.cc
@@ -136,7 +136,11 @@ namespace dynamicgraph {
 
 	pointer = PyCObject_AsVoidPtr(object);
 	SignalBase<int>* signal = (SignalBase<int>*)pointer;
-	signal->recompute(time);
+	try {
+	  signal->recompute(time);
+	} catch (const std::exception& exc) {
+	  PyErr_SetString(error, exc.what());
+	}
 	return Py_BuildValue("");
       }
     }