Index: /trunk/src/lib/shell/shell.cc
===================================================================
--- /trunk/src/lib/shell/shell.cc	(revision 7314)
+++ /trunk/src/lib/shell/shell.cc	(revision 7315)
@@ -74,5 +74,5 @@
   this->bufferDisplaySize = 10;
   this->bufferOffset = 0;
-  this->bufferIterator = ShellBuffer::getInstance()->getBuffer()->begin();
+  this->bufferIterator = ShellBuffer::getInstance()->getBuffer().begin();
 
   // INPUT LINE
@@ -130,5 +130,5 @@
   this->setRelCoorSoft2D(0, 0, 1, 5);
 
-  list<char*>::const_iterator textLine = --ShellBuffer::getInstance()->getBuffer()->end();
+  list<std::string>::const_iterator textLine = --ShellBuffer::getInstance()->getBuffer().end();
   bool top = false;
   for (int i = 0; i < this->bufferDisplaySize; i++)
@@ -138,5 +138,5 @@
     {
       this->bufferText[i]->setText((*textLine));
-    if (textLine != ShellBuffer::getInstance()->getBuffer()->begin())
+    if (textLine != ShellBuffer::getInstance()->getBuffer().begin())
       top = true;
       textLine--;
@@ -159,9 +159,9 @@
   this->setRelCoorSoft2D(0, -(int)this->shellHeight, 1, 5);
 
-  list<char*>::const_iterator textLine = --ShellBuffer::getInstance()->getBuffer()->end();
+  list<std::string>::const_iterator textLine = --ShellBuffer::getInstance()->getBuffer().end();
   for (int i = 0; i < this->bufferDisplaySize; i++)
   {
     this->bufferText[i]->setVisibility(false);
-    if (textLine != ShellBuffer::getInstance()->getBuffer()->begin())
+    if (textLine != ShellBuffer::getInstance()->getBuffer().begin())
     {
       this->bufferText[i]->setText((*textLine));
@@ -306,5 +306,5 @@
   }
 
-  list<char*>::const_iterator textLine = --ShellBuffer::getInstance()->getBuffer()->end();
+  list<std::string>::const_iterator textLine = --ShellBuffer::getInstance()->getBuffer().end();
   bufferText = new Text*[bufferDisplaySize];
   for (unsigned int i = 0; i < bufferDisplaySize; i++)
@@ -313,5 +313,5 @@
     bufferText[i]->setAlignment(TEXT_ALIGN_LEFT);
     bufferText[i]->setParent2D(this);
-    if(textLine != ShellBuffer::getInstance()->getBuffer()->begin())
+    if(textLine != ShellBuffer::getInstance()->getBuffer().begin())
     {
       bufferText[i]->setText(*textLine);
@@ -390,5 +390,5 @@
   if (this->bufferOffset == 0)
    {
-     this->bufferIterator = ShellBuffer::getInstance()->getBuffer()->end();
+     this->bufferIterator = ShellBuffer::getInstance()->getBuffer().end();
 //     for (unsigned int i = 0; i < this->bufferDisplaySize; i++)
 //       this->bufferIterator->prevStep();
@@ -396,6 +396,6 @@
 
   // boundraries
-  if (this->bufferOffset + lineCount > (int)ShellBuffer::getInstance()->getBuffer()->size())
-    lineCount = (int)ShellBuffer::getInstance()->getBuffer()->size()- this->bufferOffset;
+  if (this->bufferOffset + lineCount > (int)ShellBuffer::getInstance()->getBuffer().size())
+    lineCount = (int)ShellBuffer::getInstance()->getBuffer().size()- this->bufferOffset;
   else if (this->bufferOffset + lineCount < 0)
     lineCount = -bufferOffset;
@@ -418,5 +418,5 @@
   }
   // redisplay the buffers
-  list<char*>::const_iterator it = this->bufferIterator;
+  list<std::string>::const_iterator it = this->bufferIterator;
   for (unsigned int i = 0; i < this->bufferDisplaySize; i++)
   {
Index: /trunk/src/lib/shell/shell.h
===================================================================
--- /trunk/src/lib/shell/shell.h	(revision 7314)
+++ /trunk/src/lib/shell/shell.h	(revision 7315)
@@ -104,5 +104,5 @@
     Text**                      bufferText;             //!< A list of stored bufferTexts for the display of the buffer.
     int                         bufferOffset;           //!< how many lines from the bottom up we display the Buffer.
-    std::list<char*>::const_iterator  bufferIterator;         //!< used to move through and print the Buffer
+    std::list<std::string>::const_iterator  bufferIterator;         //!< used to move through and print the Buffer
 };
 
Index: /trunk/src/lib/shell/shell_buffer.cc
===================================================================
--- /trunk/src/lib/shell/shell_buffer.cc	(revision 7314)
+++ /trunk/src/lib/shell/shell_buffer.cc	(revision 7315)
@@ -90,10 +90,4 @@
 void ShellBuffer::flush()
 {
-  // delete all the Chars in the Buffers
-  list<char*>::iterator bufferLine;
-  for (bufferLine = this->buffer.begin(); bufferLine != this->buffer.end(); bufferLine++)
-  {
-    delete[] (*bufferLine);
-  }
   this->buffer.clear();
 }
@@ -176,17 +170,11 @@
     }
 
-    char* addLine = new char[strlen(newLineBegin)+1];
-    strcpy(addLine, newLineBegin);
-
     this->lineCount++;
-    this->buffer.push_back(addLine);
+    this->buffer.push_back(newLineBegin);
     if (likely (this->shell != NULL) && unlikely (this->shell->isActive()))
-      this->shell->printToDisplayBuffer(addLine);
+      this->shell->printToDisplayBuffer(newLineBegin);
 
     if (this->buffer.size() > this->bufferSize)
-    {
-      delete[] this->buffer.front();
       this->buffer.pop_front();
-    }
 
     newLineBegin = newLineEnd+1;
@@ -201,6 +189,6 @@
   PRINT(3)("Debugging output to console (not this shell)\n");
 
-  list<char*>::const_iterator bufferLine;
+  list<std::string>::const_iterator bufferLine;
   for (bufferLine = this->buffer.begin(); bufferLine != this->buffer.end(); bufferLine++)
-    printf(*bufferLine);
+    printf((*bufferLine).c_str());
 }
Index: /trunk/src/lib/shell/shell_buffer.h
===================================================================
--- /trunk/src/lib/shell/shell_buffer.h	(revision 7314)
+++ /trunk/src/lib/shell/shell_buffer.h	(revision 7315)
@@ -41,5 +41,5 @@
   void addBufferLine(const char* line, va_list arg);
   /** @returns the List of stings from the Buffer */
-  const std::list<char*>* getBuffer() const { return &this->buffer; };
+  const std::list<std::string>& getBuffer() const { return this->buffer; };
  /** @returns the Count of lines processed by the Shell. */
   inline long getLineCount() const { return this->lineCount; };
@@ -53,5 +53,5 @@
     static ShellBuffer*      singletonRef;                       //!< The singleton-reference to the only memeber of this class.
     unsigned int             bufferSize;                         //!< The Size of the buffer
-    std::list<char*>         buffer;                             //!< A list of stored char-arrays(strings) to store the history
+    std::list<std::string>   buffer;                             //!< A list of stored char-arrays(strings) to store the history
 
     Shell*                   shell;                              //!< the Registered Shell.
