Index: branches/preferences/configure.ac
===================================================================
--- branches/preferences/configure.ac	(revision 7234)
+++ branches/preferences/configure.ac	(revision 7235)
@@ -646,4 +646,5 @@
                  src/lib/parser/tinyxml/Makefile
                  src/lib/parser/ini_parser/Makefile
+		 src/lib/parser/preferences/Makefile
                  src/util/Makefile
                  src/world_entities/Makefile
Index: branches/preferences/src/lib/parser/ini_parser/ini_parser.cc
===================================================================
--- branches/preferences/src/lib/parser/ini_parser/ini_parser.cc	(revision 7234)
+++ branches/preferences/src/lib/parser/ini_parser/ini_parser.cc	(revision 7235)
@@ -401,12 +401,12 @@
  * @return true if everything is ok false on error
  */
-bool IniParser::editVar(const char* entryName, const char* value, const char* sectionName)
+bool IniParser::editVar(const std::string& entryName, const std::string& value, const std::string& sectionName)
 {
   std::list<IniSection>::iterator section;
 
-  if (sectionName != NULL)
+  if (!sectionName.empty())
   {
     for (section = this->sections.begin(); section != this->sections.end(); section++)
-      if (!strcmp((*section).name, sectionName))
+      if ((*section).name == sectionName)
         break;
   }
@@ -417,7 +417,6 @@
   {
     IniSection sec;
-    sec.comment = NULL;
-    sec.name = new char[strlen(sectionName)+1];
-    strcpy(sec.name, sectionName);
+    sec.comment = "";
+    sec.name = sectionName;
     section = this->sections.insert(this->sections.end(), sec);
   }
@@ -425,5 +424,5 @@
   if (section == this->sections.end())
   {
-    PRINTF(2)("section '%s' not found for value '%s'\n", sectionName, entryName);
+    PRINTF(2)("section '%s' not found for value '%s'\n", sectionName.c_str(), entryName.c_str());
     return false;
   }
@@ -433,5 +432,5 @@
     std::list<IniEntry>::iterator entry;
     for (entry = section->entries.begin(); entry!=section->entries.end(); entry++)
-      if (!strcmp( entry->name, entryName ))
+      if (entry->name == entryName )
         break;
 
@@ -439,10 +438,5 @@
     if ( entry != section->entries.end() )
     {
-      if ( entry->value != NULL )
-      {
-        delete[] entry->value;
-      }
-      entry->value = new char[strlen(value)+1];
-      strcpy(entry->value, value);
+      entry->value = value;
 
       return true;
@@ -451,12 +445,10 @@
     //not found -> create it
     (*section).entries.push_back(IniEntry());
-    (*section).entries.back().comment = NULL;
-    (*section).entries.back().name = new char[strlen(entryName)+1];
-    strcpy((*section).entries.back().name, entryName);
-    (*section).entries.back().value = new char[strlen(value)+1];
-    strcpy((*section).entries.back().value, value);
+    (*section).entries.back().comment = "";
+    (*section).entries.back().name = entryName;
+    (*section).entries.back().value = value;
     PRINTF(5)("Added Entry %s with Value '%s' to Section %s\n",
-    (*section).entries.back().name,
-    (*section).entries.back().value,
+    (*section).entries.back().name.c_str(),
+    (*section).entries.back().value.c_str(),
     (*section).name);
     this->currentEntry = --(*section).entries.end();
Index: branches/preferences/src/lib/parser/ini_parser/ini_parser.h
===================================================================
--- branches/preferences/src/lib/parser/ini_parser/ini_parser.h	(revision 7234)
+++ branches/preferences/src/lib/parser/ini_parser/ini_parser.h	(revision 7235)
@@ -69,4 +69,5 @@
     bool addVar(const std::string& entryName, const std::string& value, const std::string& sectionName = "" );
     const std::string& getVar(const std::string& entryName, const std::string& sectionName, const std::string& defaultValue = "") const;
+    bool IniParser::editVar(const std::string& entryName, const std::string& value, const std::string& sectionName = "");
     void setEntryComment(const std::string& comment, const std::string& entryName, const std::string& sectionName);
     const std::string& getEntryComment(const std::string& entryName, const std::string& sectionName) const;
