diff -r 5002d6aeb85c libsdl-1.2.14/nclude/begin_code.h
--- SDL-1.2.14/include/begin_code.h	Fri Jul 09 17:19:18 2010 +0200
+++ SDL-1.2.14-haiku/include/begin_code.h	Fri Sep 17 14:58:26 2010 +0000
@@ -43,7 +43,7 @@
 #ifndef DECLSPEC
 # if defined(__BEOS__) || defined(__HAIKU__)
 #  if defined(__GNUC__)
-#   define DECLSPEC	__declspec(dllexport)
+#   define DECLSPEC
 #  else
 #   define DECLSPEC	__declspec(export)
 #  endif
diff -r 31b0f2e06e3c src/main/beos/SDL_BeApp.cc
--- SDL-1.2.14/src/main/beos/SDL_BeApp.cc	Sun Apr 25 20:16:38 2010 -0400
+++ SDL-1.2.14-haiku/src/main/beos/SDL_BeApp.cc	Sun Jun 06 08:55:47 2010 +0000
@@ -39,13 +39,15 @@
 
 static int StartBeApp(void *unused)
 {
+  if(!be_app) {
 	BApplication *App;
 
 	App = new BApplication("application/x-SDL-executable");
 
 	App->Run();
 	delete App;
-	return(0);
+  }
+ return(0);
 }
 
 /* Initialize the Be Application, if it's not already started */
@@ -86,7 +88,7 @@
 	++SDL_BeAppActive;
 
 	/* The app is running, and we're ready to go */
-	return(0);
+ return(0);
 }
 
 /* Quit the Be Application, if there's nothing left to do */
diff -r 31b0f2e06e3c src/video/bwindow/SDL_sysvideo.cc
--- SDL-1.2.14/src/video/bwindow/SDL_sysvideo.cc	Sun Apr 25 20:16:38 2010 -0400
+++ SDL-1.2.14-haiku/src/video/bwindow/SDL_sysvideo.cc	Sun Jun 06 08:55:47 2010 +0000
@@ -57,7 +57,6 @@
 static void BE_FreeHWSurface(_THIS, SDL_Surface *surface);
 
 static int BE_ToggleFullScreen(_THIS, int fullscreen);
-static SDL_Overlay *BE_CreateYUVOverlay(_THIS, int width, int height, Uint32 format, SDL_Surface *display);
 
 /* OpenGL functions */
 #if SDL_VIDEO_OPENGL
diff -r 31b0f2e06e3c src/video/bwindow/SDL_sysyuv.h
--- SDL-1.2.14/src/video/bwindow/SDL_sysyuv.h	Sun Apr 25 20:16:38 2010 -0400
+++ SDL-1.2.14-haiku/src/video/bwindow/SDL_sysyuv.h	Sun Jun 06 08:55:47 2010 +0000
@@ -62,7 +62,7 @@
 };
 
 extern BBitmap * BE_GetOverlayBitmap(BRect bounds, color_space cs);
-SDL_Overlay* BE_CreateYUVOverlay(_THIS, int width, int height, Uint32 format, SDL_Surface* display);
+extern SDL_Overlay* BE_CreateYUVOverlay(_THIS, int width, int height, Uint32 format, SDL_Surface* display);
 extern int BE_LockYUVOverlay(_THIS, SDL_Overlay* overlay);
 extern void BE_UnlockYUVOverlay(_THIS, SDL_Overlay* overlay);
 extern int BE_DisplayYUVOverlay(_THIS, SDL_Overlay* overlay, SDL_Rect* src, SDL_Rect* dst);
