diff --git a/CMakeLists.txt b/CMakeLists.txt
index fafcde3944d0b0b3e566a19cfc8265f463d71b36..6902829fa92d89ea23fa700085d171f17ec8a51a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -81,18 +81,6 @@ include(GitUtilities)
 git_describe(SRB2_COMP_REVISION "${CMAKE_CURRENT_SOURCE_DIR}")
 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/config.h.in ${CMAKE_CURRENT_BINARY_DIR}/src/config.h)
 
-
-# Mac bundle fixup
-if(CLANG)
-	install(CODE "
-		include(BundleUtilities)
-		fixup_bundle(\"${CMAKE_INSTALL_PREFIX}/Sonic Robo Blast 2.app\"
-			\"\"
-			/Library/Frameworks
-		)"
-	)
-endif()
-
 ##### PACKAGE CONFIGURATION #####
 
 if(${CMAKE_SYSTEM} MATCHES "Windows")
diff --git a/src/config.h.in b/src/config.h.in
index 9c98d36e7a2559ea7c7b833b1a757ad200067a4d..6e7c64da332e9e107aed89da9c5c23a7fc115612 100644
--- a/src/config.h.in
+++ b/src/config.h.in
@@ -13,6 +13,8 @@
 
 #define SRB2_COMP_REVISION    "${SRB2_COMP_REVISION}"
 
+#define CMAKE_ASSETS_DIR      "${CMAKE_SOURCE_DIR}/assets"
+
 #else
 
 #define ASSET_HASH_SRB2_SRB   "c1b9577687f8a795104aef4600720ea7"
diff --git a/src/sdl/CMakeLists.txt b/src/sdl/CMakeLists.txt
index 1228fd2c59aa549a35c83301a59943f55c21d128..567a1ba9798c3b5ac1a691174b29fc12e8494379 100644
--- a/src/sdl/CMakeLists.txt
+++ b/src/sdl/CMakeLists.txt
@@ -89,6 +89,8 @@ if(${SDL2_FOUND})
 		set(SRB2_SDL2_TOTAL_SOURCES ${SRB2_SDL2_TOTAL_SOURCES}
 			macosx/mac_alert.c
 			macosx/mac_alert.h
+			macosx/mac_resources.c
+			macosx/mac_resources.h
 			macosx/Srb2mac.icns
 		)
 	endif()
@@ -205,6 +207,18 @@ if(${SDL2_FOUND})
 			DESTINATION .
 		)
 	endif()
+
+	
+	# Mac bundle fixup
+	if(CLANG)
+		install(CODE "
+			include(BundleUtilities)
+			fixup_bundle(\"${CMAKE_INSTALL_PREFIX}/Sonic Robo Blast 2.app\"
+				\"\"
+				/Library/Frameworks
+			)"
+		)
+	endif()
 else()
 	message(WARNING "SDL2 wasn't found, so ${SRB2_SDL2_EXE_NAME} won't be available")
 endif()
diff --git a/src/sdl/i_system.c b/src/sdl/i_system.c
index 19b6262b39fd39c91a698c09e44be53939549491..08cccfc6d0dfe92fd941cfa395d9e13f32a3e127 100644
--- a/src/sdl/i_system.c
+++ b/src/sdl/i_system.c
@@ -20,6 +20,8 @@
 /// \file
 /// \brief SRB2 system stuff for SDL
 
+#include "config.h"
+
 #ifndef _WIN32_WCE
 #include <signal.h>
 #endif
@@ -145,6 +147,10 @@ void __set_fpscr(long); // in libgcc / kernel's startup.s?
 #define O_BINARY 0
 #endif
 
+#ifdef __APPLE__
+#include "macosx/mac_resources.h"
+#endif
+
 // Locations for searching the srb2.srb
 #ifdef _arch_dreamcast
 #define DEFAULTWADLOCATION1 "/cd"
@@ -2758,6 +2764,28 @@ static const char *locateWad(void)
 	if (isWadPathOk(returnWadPath))
 		return NULL;
 #endif
+    
+    
+#ifdef CMAKECONFIG
+#ifndef NDEBUG
+    I_OutputMsg(","CMAKE_ASSETS_DIR);
+    strcpy(returnWadPath, CMAKE_ASSETS_DIR);
+    if (isWadPathOk(returnWadPath))
+    {
+        return returnWadPath;
+    }
+#endif
+#endif
+    
+#ifdef __APPLE__
+    OSX_GetResourcesPath(returnWadPath);
+    I_OutputMsg(",%s", returnWadPath);
+    if (isWadPathOk(returnWadPath))
+    {
+        return returnWadPath;
+    }
+    
+#endif
 
 	// examine default dirs
 #ifdef DEFAULTWADLOCATION1
diff --git a/src/sdl/macosx/mac_resources.c b/src/sdl/macosx/mac_resources.c
new file mode 100644
index 0000000000000000000000000000000000000000..dacc8014ba8da8fcd48ccbfe56a7772c4ec6c0fc
--- /dev/null
+++ b/src/sdl/macosx/mac_resources.c
@@ -0,0 +1,31 @@
+#include "mac_resources.h"
+#include <string.h>
+
+#include <CoreFoundation/CoreFoundation.h>
+
+void OSX_GetResourcesPath(char * buffer)
+{
+    CFBundleRef mainBundle;
+    mainBundle = CFBundleGetMainBundle();
+    if (mainBundle)
+    {
+        CFURLRef appUrlRef = CFBundleCopyBundleURL(mainBundle);
+        CFStringRef macPath = CFURLCopyFileSystemPath(appUrlRef, kCFURLPOSIXPathStyle);
+        CFStringRef resources = CFStringCreateWithCString(kCFAllocatorMalloc, "/Contents/Resources", kCFStringEncodingASCII);
+        const void* rawarray[2] = {macPath, resources};
+        CFArrayRef array = CFArrayCreate(kCFAllocatorMalloc, rawarray, 2, NULL);
+        CFStringRef separator = CFStringCreateWithCString(kCFAllocatorMalloc, "", kCFStringEncodingASCII);
+        CFStringRef fullPath = CFStringCreateByCombiningStrings(kCFAllocatorMalloc, array, separator);
+        const char * path = CFStringGetCStringPtr(fullPath, kCFStringEncodingASCII);
+        strcpy(buffer, path);
+        CFRelease(fullPath);
+        path = NULL;
+        CFRelease(array);
+        CFRelease(resources);
+        CFRelease(macPath);
+        CFRelease(appUrlRef);
+        //CFRelease(mainBundle);
+        CFRelease(separator);
+    }
+
+}
\ No newline at end of file
diff --git a/src/sdl/macosx/mac_resources.h b/src/sdl/macosx/mac_resources.h
new file mode 100644
index 0000000000000000000000000000000000000000..727ac9f6b091cec94d0cc10c23de7ef8580d9c4f
--- /dev/null
+++ b/src/sdl/macosx/mac_resources.h
@@ -0,0 +1,5 @@
+#ifndef __MAC_RESOURCES_H__
+#define __MAC_RESOURCES_H__
+
+void OSX_GetResourcesPath(char * buffer);
+#endif
\ No newline at end of file