diff --git a/src/command/value.cpp b/src/command/value.cpp
index b2df91d641950bb6459dac387237d428b5dd8471..66324724e3a481950bcf1f57b6dd7f60827ee0fa 100644
--- a/src/command/value.cpp
+++ b/src/command/value.cpp
@@ -178,7 +178,11 @@ namespace dynamicgraph {
 
     Value Value::operator=(const Value& value)
     {
-      return Value (value);
+      type_ = value.type_;
+      void** ptValue = const_cast<void**>(&value_);
+      *ptValue = copyValue(value);
+
+      return *this;
     }
 
     const EitherType Value::value() const