#include <SDL.h>
 #include <string>
-#include <vector>
 
 #include "math/vector.hpp"
 
 
 
 #include "control/joystickkeyboardcontroller.hpp"
 #include "gui/menu_item.hpp"
+#include "gui/mousecursor.hpp"
 #include "supertux/main.hpp"
 #include "supertux/mainloop.hpp"
 #include "supertux/resources.hpp"
 #include "supertux/timer.hpp"
 #include "util/gettext.hpp"
 #include "video/drawing_context.hpp"
+#include "video/font.hpp"
 
 static const float MENU_REPEAT_INITIAL = 0.4f;
 static const float MENU_REPEAT_RATE    = 0.1f;
 
 #include <memory>
 #include <SDL.h>
 
-#include "gui/mousecursor.hpp"
-#include "video/font.hpp"
-
-bool confirm_dialog(Surface* background, std::string text);
+#include "video/color.hpp"
 
+class DrawingContext;
 class MenuItem;
+class Surface;
+
+bool confirm_dialog(Surface* background, std::string text);
 
 class Menu
 {
 
 
 #include "gui/menu_item.hpp"
 
-#include <math.h>
-
-#include "control/joystickkeyboardcontroller.hpp"
-#include "supertux/main.hpp"
-#include "supertux/mainloop.hpp"
 #include "supertux/resources.hpp"
 #include "supertux/timer.hpp"
-#include "util/gettext.hpp"
-#include "video/drawing_context.hpp"
+#include "video/font.hpp"
 
 static const float FLICK_CURSOR_TIME   = 0.5f;
 
 
 #include <SDL.h>
 
 #include "gui/menu.hpp"
-#include "gui/mousecursor.hpp"
-#include "video/font.hpp"
 
 /* Kinds of menu items */
 enum MenuItemKind {
 
 
 #include "audio/sound_manager.hpp"
 #include "badguy/badguy.hpp"
-#include "lisp/list_iterator.hpp"
-#include "object/broken_brick.hpp"
 #include "object/coin.hpp"
 #include "object/flower.hpp"
-#include "object/bouncy_coin.hpp"
 #include "object/growup.hpp"
-#include "object/oneup.hpp"
 #include "object/player.hpp"
 #include "object/portable.hpp"
-#include "object/specialriser.hpp"
-#include "object/star.hpp"
-#include "sprite/sprite_manager.hpp"
 #include "supertux/constants.hpp"
-#include "supertux/level.hpp"
-#include "supertux/object_factory.hpp"
-#include "supertux/sector.hpp"
 
 static const float BOUNCY_BRICK_MAX_OFFSET = 8;
 static const float BOUNCY_BRICK_SPEED = 90;
 
 #include "badguy/badguy.hpp"
 #include "lisp/list_iterator.hpp"
 #include "object/broken_brick.hpp"
-#include "object/coin.hpp"
 #include "object/flower.hpp"
 #include "object/bouncy_coin.hpp"
 #include "object/growup.hpp"
 
 
 #include "audio/sound_manager.hpp"
 #include "badguy/badguy.hpp"
-#include "lisp/list_iterator.hpp"
-#include "object/broken_brick.hpp"
-#include "object/coin.hpp"
 #include "object/flower.hpp"
 #include "object/bouncy_coin.hpp"
-#include "object/growup.hpp"
-#include "object/oneup.hpp"
 #include "object/player.hpp"
 #include "object/portable.hpp"
-#include "object/specialriser.hpp"
-#include "object/star.hpp"
 #include "sprite/sprite_manager.hpp"
 #include "supertux/constants.hpp"
-#include "supertux/level.hpp"
-#include "supertux/object_factory.hpp"
 #include "supertux/sector.hpp"
 
 Brick::Brick(const Vector& pos, int data)
 
 //  You should have received a copy of the GNU General Public License
 //  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
+#include <sstream>
+
 #include "gui/menu.hpp"
 #include "gui/menu_item.hpp"
 #include "supertux/gameconfig.hpp"