Index: code/branches/kicklib/src/CMakeLists.txt
===================================================================
--- code/branches/kicklib/src/CMakeLists.txt	(revision 8123)
+++ code/branches/kicklib/src/CMakeLists.txt	(revision 8129)
@@ -145,4 +145,5 @@
   SOURCE_FILES
     Orxonox.cc
+    OrxonoxMac.mm
   OUTPUT_NAME orxonox
 )
@@ -178,4 +179,28 @@
 ENDIF(MSVC)
 
+# Apple Mac OS X specific build settings
+IF(APPLE)
+  # On Apple we need to link to AppKit and Foundation frameworks
+  TARGET_LINK_LIBRARIES(orxonox-main 
+    "-framework AppKit"
+    "-framework Foundation"
+  )
+
+  # Post-build step for the creation of the Dev-App bundle
+  INCLUDE(PrepareDevBundle)
+  ADD_CUSTOM_COMMAND(
+    TARGET orxonox-main
+    POST_BUILD 
+    # Copy the Orxonox.app from the dummy location to the correct one
+    COMMAND ${CMAKE_COMMAND} -E copy_directory "${CMAKE_BINARY_DIR}/${DEFAULT_BUNDLE_PATH}/Dummy/${PROJECT_NAME}.app" "${CMAKE_BINARY_DIR}/${DEFAULT_BUNDLE_PATH}/${CMAKE_CFG_INTDIR}/${PROJECT_NAME}.app"
+    # Copy the executable into the Orxonox.app
+    COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${CMAKE_CFG_INTDIR}/${ORXONOX_EXECUTABLE_NAME}" "${CMAKE_BINARY_DIR}/${DEFAULT_BUNDLE_PATH}/${CMAKE_CFG_INTDIR}/${PROJECT_NAME}.app/Contents/MacOS"
+    # Copy the dev-build marker file to Orxonox.app
+    COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${CMAKE_CFG_INTDIR}/orxonox_dev_build.keep_me" "${CMAKE_BINARY_DIR}/${DEFAULT_BUNDLE_PATH}/${CMAKE_CFG_INTDIR}/${PROJECT_NAME}.app/Contents/MacOS"
+    # Create a shortcut of the application to the Desktop
+    COMMAND ${CMAKE_COMMAND} -E create_symlink "${CMAKE_BINARY_DIR}/${DEFAULT_BUNDLE_PATH}/${CMAKE_CFG_INTDIR}/${PROJECT_NAME}.app" "$ENV{HOME}/Desktop/${PROJECT_NAME}.app"
+  ) 
+ENDIF(APPLE)
+
 #################### Doxygen ####################
 
Index: code/branches/kicklib/src/Orxonox.cc
===================================================================
--- code/branches/kicklib/src/Orxonox.cc	(revision 8123)
+++ code/branches/kicklib/src/Orxonox.cc	(revision 8129)
@@ -53,4 +53,6 @@
 #ifdef ORXONOX_USE_WINMAIN
 INT WINAPI WinMain(HINSTANCE hInst, HINSTANCE, LPSTR strCmdLine, INT)
+#elif defined(ORXONOX_PLATFORM_APPLE)
+int main_mac(int argc, char** argv)
 #else
 int main(int argc, char** argv)
@@ -60,6 +62,14 @@
     {
 #ifndef ORXONOX_USE_WINMAIN
+
+// On Apples, the kernel supplies a second argument, which we have to circumvent
+#ifdef ORXONOX_PLATFORM_APPLE
+# define MAC_ARGC_HACK 2
+#else
+# define MAC_ARGC_HACK 1
+#endif
+    
         std::string strCmdLine;
-        for (int i = 1; i < argc; ++i)
+        for (int i = MAC_ARGC_HACK; i < argc; ++i)
             strCmdLine = strCmdLine + argv[i] + ' ';
 #endif
Index: code/branches/kicklib/src/OrxonoxMac.h
===================================================================
--- code/branches/kicklib/src/OrxonoxMac.h	(revision 8129)
+++ code/branches/kicklib/src/OrxonoxMac.h	(revision 8129)
@@ -0,0 +1,18 @@
+//
+//  OrxonoxMac.h
+//  Orxonox
+//
+//  Created by Kevin Jonas Young on 14.03.11.
+//  Copyright 2011 -. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+
+int main_mac(int argc, char** argv);
+int main(int argc, char** argv);
+
+@interface OrxonoxAppDelegate : NSObject <NSApplicationDelegate>
+{
+}
+
+@end
Index: code/branches/kicklib/src/OrxonoxMac.mm
===================================================================
--- code/branches/kicklib/src/OrxonoxMac.mm	(revision 8129)
+++ code/branches/kicklib/src/OrxonoxMac.mm	(revision 8129)
@@ -0,0 +1,31 @@
+//
+//  OrxonoxMac.mm
+//  Orxonox
+//
+//  Created by Kevin Jonas Young on 14.03.11.
+//  Copyright 2011 -. All rights reserved.
+//
+
+#import "OrxonoxMac.h"
+
+static int argc_s = 0;
+static char** argv_s = 0;
+
+int main(int argc, char** argv)
+{
+    argc_s = argc;
+    argv_s = argv;
+    
+    int retVal = NSApplicationMain(argc, (const char**)argv);
+    
+    return retVal;
+}
+
+@implementation OrxonoxAppDelegate
+
+- (void)applicationDidFinishLaunching:(NSNotification *)notification
+{
+    exit(main_mac(argc_s, argv_s));
+}
+
+@end
Index: code/branches/kicklib/src/libraries/core/GraphicsManager.cc
===================================================================
--- code/branches/kicklib/src/libraries/core/GraphicsManager.cc	(revision 8123)
+++ code/branches/kicklib/src/libraries/core/GraphicsManager.cc	(revision 8129)
@@ -270,13 +270,4 @@
         Ogre::WindowEventUtilities::addWindowEventListener(this->renderWindow_, ogreWindowEventListener_.get());
 
-// HACK
-#ifdef ORXONOX_PLATFORM_APPLE
-        //INFO: This will give our window focus, and not lock it to the terminal
-        ProcessSerialNumber psn = {0, kCurrentProcess};
-        TransformProcessType(&psn, kProcessTransformToForegroundApplication);
-        SetFrontProcess(&psn);
-#endif
-// End of HACK
-
         // create a full screen default viewport
         // Note: This may throw when adding a viewport with an existing z-order!
Index: code/branches/kicklib/src/orxonox/sound/SoundManager.cc
===================================================================
--- code/branches/kicklib/src/orxonox/sound/SoundManager.cc	(revision 8123)
+++ code/branches/kicklib/src/orxonox/sound/SoundManager.cc	(revision 8129)
@@ -330,4 +330,5 @@
         ALenum error = alGetError();
         if (error == AL_INVALID_VALUE)
+            // @TODO: Follow this constantly appearing, nerve-racking warning
             COUT(2) << "Sound: OpenAL: Invalid listener position" << std::endl;
     }
