diff --git a/src/command/value.cpp b/src/command/value.cpp
index 76a3816982ab4547c2fa4255781506e566bf70dc..677a317c238f5821d32f9dea3c77d494c18c13de 100644
--- a/src/command/value.cpp
+++ b/src/command/value.cpp
@@ -178,10 +178,11 @@ namespace dynamicgraph {
 
     Value Value::operator=(const Value& value)
     {
-      type_ = value.type_;
-      void** ptValue = const_cast<void**>(&value_);
-      *ptValue = copyValue(value);
-
+      if (&value != this) {
+	type_ = value.type_;
+	void** ptValue = const_cast<void**>(&value_);
+	*ptValue = copyValue(value);
+      }
       return *this;
     }