Index: /branches/gui/src/lib/graphics/text_engine/text.cc
===================================================================
--- /branches/gui/src/lib/graphics/text_engine/text.cc	(revision 7892)
+++ /branches/gui/src/lib/graphics/text_engine/text.cc	(revision 7893)
@@ -126,4 +126,14 @@
   this->setupTextWidth();
 }
+
+/**
+ * @brief appends one Character to the String.
+ */
+void Text::appendCharacter(char character)
+{
+  this->text += character;
+  this->setupTextWidth();
+}
+
 
 /**
Index: /branches/gui/src/lib/graphics/text_engine/text.h
===================================================================
--- /branches/gui/src/lib/graphics/text_engine/text.h	(revision 7892)
+++ /branches/gui/src/lib/graphics/text_engine/text.h	(revision 7893)
@@ -37,4 +37,5 @@
     void setText(const std::string& text);
     void append(const std::string& appendText);
+    void appendCharacter(char character);
     const std::string& operator<<(const std::string& appendText);
     void removeCharacters(unsigned int chars);
Index: /branches/gui/src/lib/gui/gl_gui/glgui_handler.cc
===================================================================
--- /branches/gui/src/lib/gui/gl_gui/glgui_handler.cc	(revision 7892)
+++ /branches/gui/src/lib/gui/gl_gui/glgui_handler.cc	(revision 7893)
@@ -104,4 +104,9 @@
     }
 
+    if (GLGuiWidget::focused())
+    {
+      GLGuiWidget::focused()->processEvent(event);
+    }
+
   }
 
Index: /branches/gui/src/lib/gui/gl_gui/glgui_inputline.cc
===================================================================
--- /branches/gui/src/lib/gui/gl_gui/glgui_inputline.cc	(revision 7892)
+++ /branches/gui/src/lib/gui/gl_gui/glgui_inputline.cc	(revision 7893)
@@ -43,4 +43,8 @@
   {
     this->setClassID(CL_GLGUI_INPUTLINE, "GLGuiInputLine");
+
+    this->setFocusable(true);
+    this->setClickable(true);
+
     this->text.setParent2D(this);
     this->text.setFont("fonts/final_frontier.ttf", 20);
@@ -48,5 +52,4 @@
     this->setText("SUPERTEST");
     this->setSize2D( this->text.getSize2D());
-
   }
 
@@ -59,6 +62,11 @@
   {
     this->text.append(appendText);
+  }
 
+  void GLGuiInputLine::appendCharacter(char character)
+  {
+    this->text.appendCharacter(character);
   }
+
 
   void GLGuiInputLine::removeCharacters(unsigned int chars)
@@ -67,4 +75,14 @@
   }
 
+  bool GLGuiInputLine::processEvent(const Event& event)
+  {
+    if (likely(event.type < 127))
+    {
+      this->appendCharacter(event.x);
+      return true;
+    }
+
+    return false;
+  }
 
 
Index: /branches/gui/src/lib/gui/gl_gui/glgui_inputline.h
===================================================================
--- /branches/gui/src/lib/gui/gl_gui/glgui_inputline.h	(revision 7892)
+++ /branches/gui/src/lib/gui/gl_gui/glgui_inputline.h	(revision 7893)
@@ -10,5 +10,5 @@
 #include "glgui_widget.h"
 #include "text.h"
-
+#include "event.h"
 
 // FORWARD DECLARATION
@@ -31,8 +31,11 @@
     void setText(const std::string& text);
     void append(const std::string& appendText);
+    void appendCharacter(char character);
     void removeCharacters(unsigned int chars);
     const std::string& getName() const { return this->text.getText(); };
 
     virtual void draw() const;
+
+    virtual bool processEvent(const Event& event);
 
   private:
Index: /branches/gui/src/lib/gui/gl_gui/glgui_widget.cc
===================================================================
--- /branches/gui/src/lib/gui/gl_gui/glgui_widget.cc	(revision 7892)
+++ /branches/gui/src/lib/gui/gl_gui/glgui_widget.cc	(revision 7893)
@@ -41,4 +41,6 @@
   GLGuiWidget::~GLGuiWidget()
   {
+    if (this == GLGuiWidget::_focused)
+      GLGuiWidget::_focused = NULL;
   }
 
Index: /branches/gui/src/lib/gui/gl_gui/glgui_widget.h
===================================================================
--- /branches/gui/src/lib/gui/gl_gui/glgui_widget.h	(revision 7892)
+++ /branches/gui/src/lib/gui/gl_gui/glgui_widget.h	(revision 7893)
@@ -93,5 +93,6 @@
     const Material& frontMaterial() const { return this->frontMat; };
 
-
+    /** @param the Event to process. @returns true if the Event has been consumed*/
+    virtual bool processEvent(const Event& event) { };
 
 
Index: /branches/gui/src/story_entities/simple_game_menu.cc
===================================================================
--- /branches/gui/src/story_entities/simple_game_menu.cc	(revision 7892)
+++ /branches/gui/src/story_entities/simple_game_menu.cc	(revision 7893)
@@ -81,4 +81,5 @@
   OrxGui::GLGuiInputLine* input = new OrxGui::GLGuiInputLine();
   input->show();
+  input->setAbsCoor2D(200, 230);
 
   OrxGui::GLGuiHandler::getInstance()->activateCursor();
