Index: trunk/src/lib/coord/p_node.cc
===================================================================
--- trunk/src/lib/coord/p_node.cc	(revision 5107)
+++ trunk/src/lib/coord/p_node.cc	(revision 5108)
@@ -165,4 +165,10 @@
 void PNode::setRelCoor (const Vector& relCoord)
 {
+  if (this->toCoordinate!= NULL)
+  {
+    delete this->toCoordinate;
+    this->toCoordinate = NULL;
+  }
+
   this->relCoordinate = relCoord;
   this->bRelCoorChanged = true;
@@ -213,4 +219,10 @@
 void PNode::setAbsCoor (const Vector& absCoord)
 {
+  if (this->toCoordinate!= NULL)
+  {
+    delete this->toCoordinate;
+    this->toCoordinate = NULL;
+  }
+
   if( likely(this->parentMode & PNODE_MOVEMENT))
   {
@@ -276,4 +288,9 @@
 void PNode::setRelDir (const Quaternion& relDir)
 {
+  if (this->toDirection!= NULL)
+  {
+    delete this->toDirection;
+    this->toDirection = NULL;
+  }
   this->relDirection = relDir;
   this->bRelCoorChanged = true;
@@ -327,4 +344,10 @@
 void PNode::setAbsDir (const Quaternion& absDir)
 {
+  if (this->toDirection!= NULL)
+  {
+    delete this->toDirection;
+    this->toDirection = NULL;
+  }
+
   if (likely(this->parent != NULL))
     this->relDirection = absDir / this->parent->getAbsDir();
Index: trunk/src/lib/graphics/render2D/element_2d.cc
===================================================================
--- trunk/src/lib/graphics/render2D/element_2d.cc	(revision 5107)
+++ trunk/src/lib/graphics/render2D/element_2d.cc	(revision 5108)
@@ -214,4 +214,9 @@
 void Element2D::setRelCoor2D (const Vector& relCoord)
 {
+  if (this->toCoordinate!= NULL)
+  {
+    delete this->toCoordinate;
+    this->toCoordinate = NULL;
+  }
   this->relCoordinate = relCoord;
   this->bRelCoorChanged = true;
@@ -227,5 +232,5 @@
 void Element2D::setRelCoor2D (float x, float y, float z)
 {
-  this->setAbsCoor2D(Vector(x,y,z));
+  this->setRelCoor2D(Vector(x,y,z));
 }
 
@@ -288,4 +293,10 @@
 void Element2D::setAbsCoor2D (const Vector& absCoord)
 {
+  if (this->toCoordinate!= NULL)
+  {
+    delete this->toCoordinate;
+    this->toCoordinate = NULL;
+  }
+
   if( likely(this->parentMode & E2D_PARENT_MOVEMENT))
   {
@@ -362,4 +373,10 @@
 void Element2D::setRelDir2D (float relDir)
 {
+  if (this->toDirection!= NULL)
+  {
+    delete this->toDirection;
+    this->toDirection = NULL;
+  }
+
   this->relDirection = relDir;
   this->bRelDirChanged = true;
@@ -386,4 +403,10 @@
 void Element2D::setAbsDir2D (float absDir)
 {
+  if (this->toDirection!= NULL)
+  {
+    delete this->toDirection;
+    this->toDirection = NULL;
+  }
+
   if (likely(this->parent != NULL))
     this->relDirection = absDir - this->parent->getAbsDir2D();
Index: trunk/src/lib/graphics/render2D/element_2d.h
===================================================================
--- trunk/src/lib/graphics/render2D/element_2d.h	(revision 5107)
+++ trunk/src/lib/graphics/render2D/element_2d.h	(revision 5108)
@@ -108,4 +108,6 @@
     /** @returns the relative position */
     inline const Vector& getRelCoor2D () const { return this->prevRelCoordinate; };
+    /** @returns the Relative Coordinate Destination */
+    inline const Vector& getRelCoorSoft2D() const { return (this->toCoordinate)?*this->toCoordinate:this->relCoordinate; };
     const Vector& getRelCoor2Dpx() const;
     void setAbsCoor2D (const Vector& absCoord);
Index: trunk/src/util/shell.cc
===================================================================
--- trunk/src/util/shell.cc	(revision 5107)
+++ trunk/src/util/shell.cc	(revision 5108)
@@ -252,13 +252,13 @@
    {
      Text* lastText = this->bufferText[this->bufferDisplaySize-1];
-     Vector firstCoord = this->bufferText[0]->getRelCoor2D();
+     Vector firstCoord = this->bufferText[0]->getRelCoorSoft2D();
 
      Text* swapText;
      Text* moveText = this->bufferText[0];
-     this->bufferText[0]->setRelCoor2D(this->bufferText[1]->getRelCoor2D());
+     this->bufferText[0]->setRelCoorSoft2D(this->bufferText[1]->getRelCoorSoft2D(), 5);
      for (unsigned int i = 1; i < this->bufferDisplaySize; i++)
      {
        if ( i < this->bufferDisplaySize-1)
-         this->bufferText[i]->setRelCoor2D(this->bufferText[i+1]->getRelCoor2D());
+         this->bufferText[i]->setRelCoorSoft2D(this->bufferText[i+1]->getRelCoorSoft2D(),5);
        swapText = this->bufferText[i];
        this->bufferText[i] = moveText;
