diff --git a/src/robot-dyn-simu.cpp b/src/robot-dyn-simu.cpp
index 39cd4c4ea9e415d972559cfac044a1b67acba36a..dca9690af7f85291fecbfda465407dd9d3a68f04 100644
--- a/src/robot-dyn-simu.cpp
+++ b/src/robot-dyn-simu.cpp
@@ -43,7 +43,7 @@ namespace dynamicgraph
 	: Device(name)
 
 	,CONSTRUCT_SIGNAL_IN(acceleration,ml::Vector)
-	,CONSTRUCT_SIGNAL(velocity,OUT,ml::Vector)
+	,CONSTRUCT_SIGNAL_OUT(velocity,ml::Vector,sotNOSIGNAL)
 
       {
 	Entity::signalRegistration( accelerationSIN << velocitySOUT );
@@ -52,6 +52,17 @@ namespace dynamicgraph
 	addCommand("setVelocity",
 		   makeDirectSetter(*this,&velocity_,
 				    docDirectSetter("velocity","vector")));
+	std::string docstring;
+	/* Command increment. */
+	docstring =
+	  "\n"
+	  "    Integrate dynamics for time step provided as input\n"
+	  "\n"
+	  "      take one floating point number as input\n"
+	  "\n";
+	addCommand("increment",
+		   command::makeCommandVoid1((Device&)*this,
+					     &Device::increment, docstring));
 
       }
 
@@ -61,12 +72,29 @@ namespace dynamicgraph
 	os << "RobotDynSimu, nothing more to say yet." << std::endl;
       }
 
+      ml::Vector& RobotDynSimu::
+      velocitySOUT_function( ml::Vector& v, int )
+      {
+	if( velocity_.size()!=state_.size() )
+	  {
+	    velocity_.resize( state_.size() );
+	    velocity_.fill(0.0);
+	  }
+	v = velocity_;
+	return v;
+      }
+
       /* ---------------------------------------------------------------------- */
       void RobotDynSimu::
       integrate( const double & dt )
       {
 	const ml::Vector & acceleration = accelerationSIN( controlSIN.getTime() );
 
+	if( velocity_.size()!=state_.size() )
+	  {
+	    velocity_.resize( state_.size() );
+	    velocity_.fill(0.0);
+	  }
 	assert( velocity_.size() == state_.size()
 		&& velocity_.size() == acceleration.size() );
 
@@ -76,14 +104,14 @@ namespace dynamicgraph
 	for( unsigned int i=6;i<state_.size();++i )
 	  { state_(i) += velocity_(i)*dt; }
 
-	velocitySOUT.setConstant( velocity_);
+	velocitySOUT.setReady();
       }
 
       void RobotDynSimu::
       setVelocity( const ml::Vector& v )
       {
 	velocity_ = v;
-	velocitySOUT.setConstant( velocity_);
+	velocitySOUT.setReady();
       }
 
     } // namespace dyninv
diff --git a/src/robot-dyn-simu.h b/src/robot-dyn-simu.h
index 77c5685f4be38695fdfbe46273eb212b74d26fe6..1ee606d5bd6cd397b52f9ee2e5b092dfad115a1e 100644
--- a/src/robot-dyn-simu.h
+++ b/src/robot-dyn-simu.h
@@ -71,7 +71,7 @@ namespace dynamicgraph {
 	public:  /* --- SIGNALS --- */
 
 	  DECLARE_SIGNAL_IN( acceleration,ml::Vector );
-	  DECLARE_SIGNAL( velocity,OUT,ml::Vector );
+	  DECLARE_SIGNAL_OUT( velocity,ml::Vector );
 
 	protected:
 	  virtual void integrate( const double & dt );