diff --git a/NEWS b/NEWS
index 0a8dde97929b493080f0e8684e706d76b8e35e87..b145194cf23bdcbf70c65a1f082158c6dc45b5a2 100644
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,5 @@
                                                                 -*- outline -*-
-New in
+New in 4.10.0
 * In graph::steeringMethod, if q1 == q2, the steering method calls the problem
   inner steering method. This avoids a failure if no loop transition has been
   set on the state containing q1.
@@ -9,7 +9,9 @@ New in
   - rename some methods for homogeneity with python bindings
     - applyConstraints -> generateTargetConfig
     - configConstraint -> targetConstraint,
-    - from -> stateFrom, to -> stateTo.
+    - from -> stateFrom, to -> stateTo,
+* In class WaypointEdge,
+  - specialize initialization.
 * In class LevelSetEdge,
   - write documentation,
   - rename method applyConstraintsWithOffset into generateTargetConfigOnLeaf,
@@ -19,11 +21,14 @@ New in
 * Add end-effector-tracjectory plugin.
 * In class ManipulationPlanner,
   - call the problem PathValidation instead of the edge one.
-
+* In class ProblemSolver
+  - register contact constraints and complement in constraint graph.
+  
 New in 4.8.0
 * Rewrite steering method CrossStateOptimization.
 * In graph component classes (State, Edge, Graph) locked joints are handled as other numerical constraints.
   - decouple waypoint computations.
+
 New in 4.6.0
 * Add setter to relative motion matrix in edges.
 * Add method Edge::neighborEdges.
diff --git a/package.xml b/package.xml
index 920e7c5d51a08032f5d86476ccbbf18113966ca5..c6b6e4c79d5b8aad40f81b9ffbdec8cd202c87d0 100644
--- a/package.xml
+++ b/package.xml
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> 
  <package format='2'> 
  <name>hpp-manipulation</name> 
- <version>4.9.0</version> 
+ <version>4.10.0</version>
  <description>Classes for manipulation planning. </description> 
  
  <maintainer email='hpp@laas.fr'>Joseph Mirabel</maintainer>