Index: trunk/src/lib/shell/shell.cc
===================================================================
--- trunk/src/lib/shell/shell.cc	(revision 5180)
+++ trunk/src/lib/shell/shell.cc	(revision 5181)
@@ -61,5 +61,4 @@
 
   this->rebuildText();
-  this->completionList = NULL;
 
   // EVENT-Handler subscription of '`' to all States.
Index: trunk/src/lib/shell/shell.h
===================================================================
--- trunk/src/lib/shell/shell.h	(revision 5180)
+++ trunk/src/lib/shell/shell.h	(revision 5181)
@@ -87,7 +87,4 @@
     unsigned int             bufferDisplaySize;      //!< The Size of the Display-buffer, in lines (not in characters)
     Text**                   bufferText;             //!< A list of stored bufferTexts for the display of the buffer
-
-    // completion
-    tList<const char>*       completionList;          //!< A list of completions, that are io.
 };
 
Index: trunk/src/lib/shell/shell_completion.cc
===================================================================
--- trunk/src/lib/shell/shell_completion.cc	(revision 5180)
+++ trunk/src/lib/shell/shell_completion.cc	(revision 5181)
@@ -18,4 +18,6 @@
 #include "shell_completion.h"
 
+#include "shell_input.h"
+
 #include "base_object.h"
 #include "class_list.h"
@@ -33,16 +35,5 @@
 ShellCompletion::ShellCompletion ()
 {
-// this->setClassID(CL_PROTO_ID, "ProtoClass");
-
-   /* If you make a new class, what is most probably the case when you write this file
-      don't forget to:
-       1. Add the new file new_class.cc to the ./src/Makefile.am
-       2. Add the class identifier to ./src/class_id.h eg. CL_NEW_CLASS
-
-      Advanced Topics:
-      - if you want to let your object be managed via the ObjectManager make sure to read
-        the object_manager.h header comments. You will use this most certanly only if you
-        make many objects of your class, like a weapon bullet.
-   */
+  this->completionList = NULL;
 }
 
@@ -54,4 +45,8 @@
 {
   // delete what has to be deleted here
+  if (this->completionList)
+  {
+    delete this->completionList;
+  }
 }
 
@@ -64,10 +59,10 @@
  * @todo implement it!!
  */
-bool ShellCompletion::autoComplete(const char* inputLine)
+bool ShellCompletion::autoComplete(ShellInput* input)
 {
   //PRINTF(3)("AutoCompletion not implemented yet\n");
 
-  char* completionLine = new char[strlen(inputLine)+1];
-  strcpy(completionLine, inputLine);
+  char* completionLine = new char[strlen(input->getText())+1];
+  strcpy(completionLine, input->getText());
 
   char* commandBegin = strrchr(completionLine, ' ');
Index: trunk/src/lib/shell/shell_completion.h
===================================================================
--- trunk/src/lib/shell/shell_completion.h	(revision 5180)
+++ trunk/src/lib/shell/shell_completion.h	(revision 5181)
@@ -9,4 +9,5 @@
 // FORWARD DECLARATION
 class BaseObject;
+class ShellInput;
 template<class T> class tList;
 #ifndef NULL
@@ -21,5 +22,5 @@
   virtual ~ShellCompletion();
 
-  bool autoComplete(const char* inputLine);
+  bool autoComplete(ShellInput* input);
   bool classComplete(const char* classBegin);
   bool objectComplete(const char* objectBegin, long classID);
Index: trunk/src/lib/shell/shell_input.cc
===================================================================
--- trunk/src/lib/shell/shell_input.cc	(revision 5180)
+++ trunk/src/lib/shell/shell_input.cc	(revision 5181)
@@ -18,7 +18,10 @@
 #include "shell_input.h"
 
+
+
+#include "shell_command.h"
+#include "shell_completion.h"
 #include "event_handler.h"
 
-#include "shell_command.h"
 #include "debug.h"
 #include "list.h"
@@ -50,4 +53,5 @@
     evh->subscribe(this, ES_SHELL, i);
 
+  this->completion = new ShellCompletion;
 }
 
@@ -58,4 +62,6 @@
 {
   // delete what has to be deleted here
+  delete[] this->inputLine;
+  delete this->completion;
 }
 
@@ -195,5 +201,5 @@
       this->debug();
     else if (event.type == SDLK_TAB)
-      ;//this->autoComplete();
+      this->completion->autoComplete(this);
     else if (event.type == SDLK_BACKSPACE)
     {
Index: trunk/src/lib/shell/shell_input.h
===================================================================
--- trunk/src/lib/shell/shell_input.h	(revision 5180)
+++ trunk/src/lib/shell/shell_input.h	(revision 5181)
@@ -12,4 +12,5 @@
 // FORWARD DECLARATION
 template<class T> class tList;
+class ShellCompletion;
 
 
@@ -38,5 +39,7 @@
  private:
     // HANDLING TEXT INPUT
-   char*                    inputLine;              //!< the Char-Array of the Buffer
+   ShellCompletion*         completion;             //!< The Completion Interface.
+
+   char*                    inputLine;              //!< the Char-Array of the Buffer @todo not needed anymore
    float                    repeatRate;             //!< The Repeat-Delay.
    float                    repeatDelay;            //!< The delay of the first Character of a given Character.
