diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index a577ac878d84933093ebfd33b1a9a586a827f378..dc98840244df8878f64bc60bf36295bc1a6c0e81 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -70,6 +70,7 @@ INSTALL(FILES
   ${CMAKE_CURRENT_SOURCE_DIR}/dynamic_graph/sot/dynamics/__init__.py
   ${CMAKE_CURRENT_SOURCE_DIR}/dynamic_graph/sot/dynamics/humanoid_robot.py
   ${CMAKE_CURRENT_SOURCE_DIR}/dynamic_graph/sot/dynamics/parser.py
+  ${CMAKE_CURRENT_SOURCE_DIR}/dynamic_graph/sot/dynamics/tools.py
   ${CMAKE_CURRENT_SOURCE_DIR}/dynamic_graph/sot/dynamics/solver.py
   DESTINATION ${PYTHON_SITELIB}/dynamic_graph/sot/dynamics
   )
diff --git a/src/dynamic_graph/sot/dynamics/tools.py b/src/dynamic_graph/sot/dynamics/tools.py
index 32ce0c6cb47f44d39559437594069e0c967b5616..9d859bb9f161d497c5d5ff9314d1efe3ae72ccc8 100755
--- a/src/dynamic_graph/sot/dynamics/tools.py
+++ b/src/dynamic_graph/sot/dynamics/tools.py
@@ -15,14 +15,9 @@
 # received a copy of the GNU Lesser General Public License along with
 # dynamic-graph. If not, see <http://www.gnu.org/licenses/>.
 
-import sys
-from optparse import OptionParser
-
 from dynamic_graph import plug
 from dynamic_graph.sot.core import SOT
 from dynamic_graph.sot.dynamics.hrp2 import Hrp2Laas, Hrp2Jrl
-from dynamic_graph.sot.dynamics.solver import Solver
-
 
 # Robotviewer is optional
 hasRobotViewer = True
@@ -145,23 +140,28 @@ def checkFinalConfiguration(position, finalPosition):
 # Initialization #
 ##################
 
-# Parse options and enable robotviewer client if wanted.
-clt = None
-parser = OptionParser()
-parser.add_option("-d", "--display",
-                  action="store_true", dest="display", default=False,
-                  help="enable display using robotviewer")
-(options, args) = parser.parse_args()
-
-if options.display:
-    if not hasRobotViewer:
-        print "Failed to import robotviewer client library."
-    clt = initRobotViewer()
-    if not clt:
-        print "Failed to initialize robotviewer client library."
-
-
-# Initialize the stack of tasks.
-robot = Hrp2Laas("robot")
-timeStep = .005
-solver = Solver(robot)
+if __name__ == '__main__':
+    import sys
+    from optparse import OptionParser
+    from dynamic_graph.sot.dynamics.solver import Solver
+
+    # Parse options and enable robotviewer client if wanted.
+    clt = None
+    parser = OptionParser()
+    parser.add_option("-d", "--display",
+                      action="store_true", dest="display", default=False,
+                      help="enable display using robotviewer")
+    (options, args) = parser.parse_args()
+
+    if options.display:
+        if not hasRobotViewer:
+            print "Failed to import robotviewer client library."
+        clt = initRobotViewer()
+        if not clt:
+            print "Failed to initialize robotviewer client library."
+
+
+    # Initialize the stack of tasks.
+    robot = Hrp2Laas("robot")
+    timeStep = .005
+    solver = Solver(robot)