Index: trunk/src/lib/gui/gtk_gui/gui_exec.cc
===================================================================
--- trunk/src/lib/gui/gtk_gui/gui_exec.cc	(revision 7193)
+++ trunk/src/lib/gui/gtk_gui/gui_exec.cc	(revision 7221)
@@ -47,6 +47,6 @@
   Frame* execFrame;            //!< The Frame that holds the ExecutionOptions.
 
-  this->confFile = NULL;
-  this->confDir = NULL;
+  this->confFile = "";
+  this->confDir = "";
 
   execFrame = new Frame("Execute-Tags:");
@@ -137,8 +137,4 @@
 GuiExec::~GuiExec()
 {
-  if(this->confFile)
-    delete []this->confFile;
-  if(this->confDir)
-    delete []this->confDir;
 }
 
@@ -156,7 +152,7 @@
   //! @todo F** Windows-support
 #ifndef __WIN32__
-  mkdir(this->confDir, 0755);
+  mkdir(this->confDir.c_str(), 0755);
 #else /* __WiN32__ */
-  mkdir(this->confDir);
+  mkdir(this->confDir.c_str());
 #endif /* __WIN32__ */
 }
@@ -170,8 +166,7 @@
 void GuiExec::setConfFile(const char* fileName)
 {
-  if (!this->confDir)
+  if (this->confDir.empty())
     this->setConfDir("~/");
-  this->confFile = new char[strlen(this->confDir)+strlen(fileName)+2];
-  sprintf(this->confFile, "%s/%s", this->confDir, fileName);
+  this->confFile = this->confDir + "/" + fileName;
   PRINTF(5)("ConfigurationFile is %s.\n", this->confFile);
 }
@@ -182,5 +177,5 @@
 const char* GuiExec::getConfigFile() const
 {
-  return this->confFile;
+  return this->confFile.c_str();
 }
 
@@ -204,7 +199,6 @@
   IniParser iniParser;
   this->writeFileText(widget, &iniParser, 0);
-  char* fileName = ResourceManager::homeDirCheck(confFile);
+  std::string fileName = ResourceManager::homeDirCheck(confFile);
   iniParser.writeFile(fileName);
-  delete[] fileName;
 }
 
@@ -259,7 +253,6 @@
 void GuiExec::readFromFile(Widget* widget)
 {
-  char* fileName = ResourceManager::homeDirCheck(confFile);
+  std::string fileName = ResourceManager::homeDirCheck(confFile);
   IniParser iniParser(fileName);
-  delete[] fileName;
   if (!iniParser.isOpen())
     return;
@@ -267,13 +260,13 @@
   iniParser.firstSection();
   Widget* groupWidget = widget;
-  const char* groupName;
-  const char* widgetName;
+  std::string groupName;
+  std::string widgetName;
   VarInfo varInfo;
-  while (groupName = iniParser.getCurrentSection())
+  while ((groupName = iniParser.getCurrentSection()) != "")
   {
-    printf("GROUP:::%s\n", groupName);
-    if((groupWidget = locateGroup(widget, groupName, 1))==NULL)
+    PRINTF(4)("GROUP:::%s\n", groupName.c_str());
+    if((groupWidget = locateGroup(widget, groupName.c_str(), 1))==NULL)
       {
-	PRINTF(2)("!!There is no group called %s in this GUI.\n First best Widget will get the Infos assigned.\n Config-File will be updated in next Save\n", groupName);
+        PRINTF(2)("!!There is no group called %s in this GUI.\n First best Widget will get the Infos assigned.\n Config-File will be updated in next Save\n", groupName.c_str());
 	groupWidget = widget;
 	continue;
@@ -282,11 +275,11 @@
       PRINT(4)("Group %s located.\n", static_cast<Packer*>(groupWidget)->groupName);
 
-    const char* entryName;
+    std::string entryName;
     iniParser.firstVar();
-    while(entryName = iniParser.getCurrentName())
-    {
-      PRINTF(4)("ENTRY:::%s = %s\n", entryName, iniParser.getCurrentValue());
-      varInfo.variableName = entryName;
-      varInfo.variableValue = iniParser.getCurrentValue();
+    while((entryName = iniParser.getCurrentName()) != "")
+    {
+      PRINTF(4)("ENTRY:::%s = %s\n", entryName.c_str(), iniParser.getCurrentValue().c_str());
+      varInfo.variableName = entryName.c_str();
+      varInfo.variableValue = iniParser.getCurrentValue().c_str();
       groupWidget->walkThrough(this->readFileText, &varInfo, 0);
       iniParser.nextVar();
Index: trunk/src/lib/gui/gtk_gui/gui_exec.h
===================================================================
--- trunk/src/lib/gui/gtk_gui/gui_exec.h	(revision 7193)
+++ trunk/src/lib/gui/gtk_gui/gui_exec.h	(revision 7221)
@@ -11,4 +11,6 @@
 #include "gui_gtk.h"
 
+#include <string>
+
 class Widget;
 class CheckButton;
@@ -22,6 +24,6 @@
   CheckButton* saveSettings;   //!< A CheckBox for if the Options should be saved.
 
-  char* confDir;               //!< The directory of the orxonox-configuration-files.
-  char* confFile;              //!< The name of the .orxonox.conf(ig)-file.
+  std::string confDir;         //!< The directory of the orxonox-configuration-files.
+  std::string confFile;        //!< The name of the .orxonox.conf(ig)-file.
 
   //! A struct that holds informations about variables.
@@ -58,6 +60,6 @@
 struct HashTable
 {
-  char* name;           //!< name of the entry
-  char* value;          //!< value of the entry
+  std::string name;           //!< name of the entry
+  std::string value;          //!< value of the entry
   HashTable* next;      //!< pointer to the next entry
 };
