Index: branches/powerups/src/lib/gui/gtk_gui/gui_audio.cc
===================================================================
--- branches/powerups/src/lib/gui/gtk_gui/gui_audio.cc	(revision 5848)
+++ branches/powerups/src/lib/gui/gtk_gui/gui_audio.cc	(revision 5955)
@@ -42,4 +42,5 @@
     {
       CheckButton* enableSound; //!< A Ckeckbutton for enabling Sound.
+      Slider* audioChannels;    //!< A Slider for the count of audio-channels.
       Slider* musicVolume;      //!< A Slider for music volume.
       Slider* effectsVolume;    //!< A Slider for effects volume.
@@ -51,4 +52,14 @@
       enableSound->saveability();
       audioBox->fill(enableSound);
+
+      Label* audioChannelsLabel = new Label(CONFIG_NAME_AUDIO_CHANNELS);
+      audioBox->fill(audioChannelsLabel);
+      audioChannels = new Slider(CONFIG_NAME_AUDIO_CHANNELS, 0, 32);
+      audioChannels->setFlagName("channels", "c", 32);
+      audioChannels->setDescription("Sets the count of channels in the game");
+      audioChannels->saveability();
+      audioBox->fill (audioChannels);
+
+
       Label* musicVolumeLabel = new Label(CONFIG_NAME_MUSIC_VOLUME);
       audioBox->fill(musicVolumeLabel);
@@ -58,4 +69,5 @@
       musicVolume->saveability();
       audioBox->fill (musicVolume);
+
       Label* effectsVolumeLabel = new Label (CONFIG_NAME_EFFECTS_VOLUME);
       audioBox->fill (effectsVolumeLabel);
Index: branches/powerups/src/lib/gui/gtk_gui/gui_exec.cc
===================================================================
--- branches/powerups/src/lib/gui/gtk_gui/gui_exec.cc	(revision 5848)
+++ branches/powerups/src/lib/gui/gtk_gui/gui_exec.cc	(revision 5955)
@@ -27,5 +27,5 @@
 
 #include "resource_manager.h"
-#include "ini_parser.h"
+#include "parser/ini_parser/ini_parser.h"
 
 #include <string.h>
@@ -254,5 +254,5 @@
 
 /**
- *  Reads in Configuration Data.
+ * @brief Reads in Configuration Data.
  * @param widget from which Widget on should be saved.
 */
@@ -265,5 +265,5 @@
     return;
 
-  iniParser.getFirstSection();
+  iniParser.firstSection();
   Widget* groupWidget = widget;
   const char* groupName;
@@ -272,17 +272,20 @@
   while (groupName = iniParser.getCurrentSection())
   {
+    printf("GROUP:::%s\n", groupName);
     if((groupWidget = locateGroup(widget, groupName, 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);
-      groupWidget = widget;
-      continue;
-    }
+      {
+	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);
+	groupWidget = widget;
+	continue;
+      }
     else
-      PRINT(0)("Group %s located.\n", static_cast<Packer*>(groupWidget)->groupName);
-
-    iniParser.getFirstVar();
-    while(iniParser.getCurrentName())
-    {
-      varInfo.variableName = iniParser.getCurrentName();
+      PRINT(4)("Group %s located.\n", static_cast<Packer*>(groupWidget)->groupName);
+
+    const char* entryName;
+    iniParser.firstVar();
+    while(entryName = iniParser.getCurrentName())
+    {
+      PRINTF(4)("ENTRY:::%s = %s\n", entryName, iniParser.getCurrentValue());
+      varInfo.variableName = entryName;
       varInfo.variableValue = iniParser.getCurrentValue();
       groupWidget->walkThrough(this->readFileText, &varInfo, 0);
@@ -303,9 +306,13 @@
 {
   VarInfo* info =(VarInfo*)varInfo;
+  if (info == NULL || info->variableName == NULL)
+    return;
+
   if(widget->title && !strcmp(widget->title, info->variableName))
     {
       PRINT(5)("Located Option %s.\n", widget->title);
       if(widget->optionType > GUI_NOTHING)
-        static_cast<Option*>(widget)->load(info->variableValue);
+	if (info->variableValue != NULL)
+	  static_cast<Option*>(widget)->load(info->variableValue);
     }
 }
@@ -323,15 +330,16 @@
 {
   Widget* tmp;
+  if (widget  == NULL || groupName == NULL)
+    return NULL;
 
   if(widget->optionType < GUI_NOTHING)
     {
-      if(static_cast<Packer*>(widget)->getGroupName() &&
+      if(static_cast<Packer*>(widget)->getGroupName() != NULL &&
          !strcmp(groupName, static_cast<Packer*>(widget)->getGroupName()))
-        {
-          return widget;
-        }
+	return widget;
       else
         {
-          if((tmp = locateGroup(static_cast<Packer*>(widget)->down, groupName, depth+1)) != NULL)
+          if((tmp = locateGroup(static_cast<Packer*>(widget)->down,
+				groupName, depth+1)) != NULL)
             return tmp;
         }
Index: branches/powerups/src/lib/gui/gtk_gui/gui_keys.cc
===================================================================
--- branches/powerups/src/lib/gui/gtk_gui/gui_keys.cc	(revision 5848)
+++ branches/powerups/src/lib/gui/gtk_gui/gui_keys.cc	(revision 5955)
@@ -119,5 +119,5 @@
         pKeysBox->fill(addKey(CONFIG_NAME_PLAYER_LEFT, "LEFT"));
         pKeysBox->fill(addKey(CONFIG_NAME_PLAYER_RIGHT, "RIGHT"));
-        pKeysBox->fill(addKey(CONFIG_NAME_PLAYER_FIRE, "MOUSE_LEFT"));
+        pKeysBox->fill(addKey(CONFIG_NAME_PLAYER_FIRE, "BUTTON_LEFT"));
         pKeysBox->fill(addKey(CONFIG_NAME_PLAYER_NEXT_WEAPON, "m"));
         pKeysBox->fill(addKey(CONFIG_NAME_PLAYER_PREV_WEAPON, "n"));
