* supertux...
  */
 #ifdef alcGetString
-#undef alcGetString
+#  undef alcGetString
 #endif
-#define alcGetString(x,y) ""
+#  define alcGetString(x,y) ""
 #endif
 
-SoundManager* sound_manager = 0;
-
 SoundManager::SoundManager() :
   device(0), 
   context(0), 
 
   SoundManager& operator=(const SoundManager&);
 };
 
-extern SoundManager* sound_manager;
-
 #endif
 
 /* EOF */
 
 #include "supertux/globals.hpp"
 #include "video/drawing_context.hpp"
 
-extern SDL_Surface* g_screen;
-
 ButtonGroup::ButtonGroup(Vector pos_, Vector buttons_size_, Vector buttons_box_) :
   pos(pos_), 
   buttons_size(buttons_size_), 
 
 static const float MENU_REPEAT_INITIAL = 0.4f;
 static const float MENU_REPEAT_RATE    = 0.1f;
 
-extern SDL_Surface* g_screen;
-
 Menu::Menu() :
   hit_item(),
   pos_x(),
 
 #include "video/drawing_context.hpp"
 
 MouseCursor* MouseCursor::current_ = 0;
-extern SDL_Surface* g_screen;
 
 MouseCursor::MouseCursor(std::string cursor_file) : 
   mid_x(0), 
 
 #include "obstack/obstackpp.hpp"
 #include "physfs/ifile_stream.hpp"
 #include "physfs/ifile_streambuf.hpp"
+#include "supertux/globals.hpp"
 #include "tinygettext/tinygettext.hpp"
 
 #include "supertux/gameconfig.hpp"
 
 #include "util/reader.hpp"
 #include "supertux/globals.hpp"
 
-Config* g_config = 0;
-
 Config::Config() :
   profile(1),
   fullscreen_width (800),
 
   std::string locale; /**< force SuperTux language to this locale, e.g. "de". A file "data/locale/xx.po" must exist for this to work. An empty string means autodetect. */
 };
 
-extern Config* g_config;
-
 #endif
 
 /* EOF */
 
 int SCREEN_WIDTH;
 int SCREEN_HEIGHT;
 
-ScreenManager* g_screen_manager = NULL;
+ScreenManager* g_screen_manager = 0;
 
-TextureManager* texture_manager = NULL;
+TextureManager* texture_manager = 0;
+
+SoundManager* sound_manager = 0;
+
+Config* g_config = 0;
+
+float game_time = 0;
+float real_time = 0;
 
 /* EOF */
 
 
 #include <SDL.h>
 
+class Config;
 class JoystickKeyboardController;
+class SoundManager;
 class ScreenManager;
 class TextureManager;
 
 
 extern TextureManager* texture_manager;
 
+extern SoundManager* sound_manager;
+
+extern Config* g_config;
+
+extern float game_time;
+extern float real_time;
+
 #endif
 
 /* EOF */
 
 
 #include "util/gettext.hpp"
 #include "supertux/gameconfig.hpp"
+#include "supertux/globals.hpp"
 
 KeyboardMenu::KeyboardMenu(JoystickKeyboardController* _controller) :
   controller(_controller)
 
 #include "supertux/menu/language_menu.hpp"
 
 extern "C" {
-#include "findlocale.h"
+#include <findlocale.h>
 }
 #include "gui/menu_item.hpp"
 #include "gui/menu_manager.hpp"
 #include "supertux/gameconfig.hpp"
+#include "supertux/globals.hpp"
 
 enum {
   MNID_LANGUAGE_AUTO_DETECT = 0,
 
 #include "gui/menu_manager.hpp"
 #include "gui/menu_item.hpp"
 #include "supertux/gameconfig.hpp"
+#include "supertux/globals.hpp"
 #include "util/gettext.hpp"
 
 ProfileMenu::ProfileMenu() 
 
 
 #include "supertux/timer.hpp"
 
-float game_time = 0;
-float real_time = 0;
-
-Timer::Timer()
-  : period(0), cycle_start(0), cyclic(false)
+Timer::Timer() :
+  period(0), 
+cycle_start(0), 
+  cyclic(false)
 {
 }
 
 
 #ifndef HEADER_SUPERTUX_SUPERTUX_TIMER_HPP
 #define HEADER_SUPERTUX_SUPERTUX_TIMER_HPP
 
-extern float game_time;
-extern float real_time;
+#include "supertux/globals.hpp"
 
 /**
  * Simple timer designed to be used in the update functions of objects