diff --git a/idl/Graphics/corbaserver/graphicalinterface.idl b/idl/Graphics/corbaserver/graphicalinterface.idl
index dfe1d98bac5a7847371b525a299301774277b023..6341ac546fc1660196aba6ec5741e023bff4de3a 100644
--- a/idl/Graphics/corbaserver/graphicalinterface.idl
+++ b/idl/Graphics/corbaserver/graphicalinterface.idl
@@ -143,6 +143,15 @@ typedef double Color [4];
     /// \param input configuration : Double[7] new configuration.
        boolean applyConfiguration(in string nodeName, in Transform configuration) ;
 
+    /// Add Landmark at the center of a node (x=blue, y=green, z=red).
+    /// \param input nodeName : name of the node
+    /// \param input size : lenght of axises.
+       boolean addLandmark(in string nodeName, in float size) ;
+
+    /// delete Landmark of a node.
+    /// \param input nodeName : name of the node
+       boolean deleteLandmark(in string nodeName) ;
+
     /// Change the visibility of a node. If this node is a group node, visibility mode will be apply to all children.
     /// \param input nodeName : name of the node.
     /// \param input visibilityMode : visibility mode can be "ON", "OFF" or "ALWAYS_ON_TOP".
diff --git a/src/GraphicalInterface.impl.cpp b/src/GraphicalInterface.impl.cpp
index a68263362e4ac48dc177f7cd480b1b4556adbc08..474b04979abe3f2daf645dd6a3fa2215dbda79aa 100644
--- a/src/GraphicalInterface.impl.cpp
+++ b/src/GraphicalInterface.impl.cpp
@@ -551,6 +551,29 @@ bool GraphicalInterface::applyConfiguration(const char* nodeNameCorba, const dou
     }
 }
 
+bool GraphicalInterface::addLandmark(const char* nodeNameCorba, float size)
+{
+    const std::string nodeName(nodeNameCorba);
+    if (nodes_.find(nodeName) == nodes_.end()) {
+        std::cout << "Node \"" << nodeName << "\" doesn't exist." << std::endl;
+        return false;
+    }
+    nodes_[nodeName]->addLandmark(size);
+    return true;
+}
+
+
+bool GraphicalInterface::deleteLandmark(const char* nodeNameCorba)
+{
+    const std::string nodeName(nodeNameCorba);
+    if (nodes_.find(nodeName) == nodes_.end()) {
+        std::cout << "Node \"" << nodeName << "\" doesn't exist." << std::endl;
+        return false;
+    }
+    nodes_[nodeName]->deleteLandmark();
+    return true;
+}
+
 bool GraphicalInterface::setVisibility(const char* nodeNameCorba, const char* visibilityModeCorba)
 {
     const std::string nodeName(nodeNameCorba);
diff --git a/src/GraphicalInterface.impl.hh b/src/GraphicalInterface.impl.hh
index 58e52233b4192c8c0297a73f52d78e68c4b80120..2d127b2bfc50ce5f2ee7afdd3a5d1d9012f002ba 100644
--- a/src/GraphicalInterface.impl.hh
+++ b/src/GraphicalInterface.impl.hh
@@ -117,6 +117,9 @@ public:
 
     virtual bool applyConfiguration(const char* nodeNameCorba, const double* configuration) ;
 
+    virtual bool addLandmark(const char* nodeNameCorba, float size);
+    virtual bool deleteLandmark(const char* nodeNameCorba);
+
     virtual bool setVisibility(const char* nodeNameCorba, const char* visibilityModeCorba) ;
     virtual bool setWireFrameMode(const char* nodeNameCorba, const char* wireFrameModeCorba) ;
     virtual bool setLightingMode(const char* nodeNameCorba, const char* lightingModeCorba) ;