diff --git a/src/conio/SDL_win32_main.c b/src/conio/SDL_win32_main.c
index dd6f9f3ba576b85ae8584c6b18bcd93ea19803f8..96f87f245a5378b395da1b5f2da8693a19a29476 100644
--- a/src/conio/SDL_win32_main.c
+++ b/src/conio/SDL_win32_main.c
@@ -15,7 +15,7 @@
 #define DIR_SEPERATOR TEXT("/")
 #include <direct.h>
 
-#include "SDL_main.h"			/* SDL_RegisterApp() which sets program name... */
+#include "ciolib.h"			/* ciolib_appname */
 
 /* Parse a command line buffer into arguments */
 static int ParseCommandLine(char *cmdline, char **argv)
@@ -95,8 +95,7 @@ static int console_main(int argc, char *argv[], char **env)
 	}
 	strncpy(bufp, appname, n);
 	bufp[n] = '\0';
-	appname = bufp;
-	SDL_RegisterApp(appname, 0, NULL);
+	ciolib_appname = bufp;
 
 	/* Run the application main() code */
 	n=CIOLIB_main(argc, argv);
diff --git a/src/conio/ciolib.c b/src/conio/ciolib.c
index 9455426dd601f7467c2e22d360512630427aec75..24b0a99b939e24bf7a1023e00d3c6368d89a61ea 100644
--- a/src/conio/ciolib.c
+++ b/src/conio/ciolib.c
@@ -81,6 +81,7 @@ CIOLIBEXPORT int hold_update=0;
 CIOLIBEXPORT int puttext_can_move=0;
 CIOLIBEXPORT int ciolib_xlat=0;
 CIOLIBEXPORT int ciolib_reaper=TRUE;
+CIOLIBEXPORT char *ciolib_appname=NULL;
 static int initialized=0;
 
 CIOLIBEXPORT int CIOLIBCALL ciolib_movetext(int sx, int sy, int ex, int ey, int dx, int dy);
diff --git a/src/conio/ciolib.h b/src/conio/ciolib.h
index 69f1ea4cfa8be884ce6c9a2c6aa1a8bf8a43fbf8..6d67d952f2bdff1426c3b20abf2ced25c5b19658 100644
--- a/src/conio/ciolib.h
+++ b/src/conio/ciolib.h
@@ -379,6 +379,7 @@ CIOLIBEXPORTVAR int ciolib_xlat;
 #define CIOLIB_XLAT_ALL		(CIOLIB_XLAT_CHARS | CIOLIB_XLAT_ATTR)
 
 CIOLIBEXPORTVAR int ciolib_reaper;
+CIOLIBEXPORTVAR char *ciolib_appname;
 
 #define _conio_kbhit()		kbhit()
 
diff --git a/src/conio/sdlfuncs.c b/src/conio/sdlfuncs.c
index 717d77169752ec795ef4e43d5966e56dcadd51ac..2ae8d3cbbeeff2ce9d0ca2699245b9775c5c87e9 100644
--- a/src/conio/sdlfuncs.c
+++ b/src/conio/sdlfuncs.c
@@ -16,6 +16,8 @@ struct sdlfuncs sdl;
 #endif
 #include <xp_dl.h>
 
+#include "ciolib.h"
+
 static int sdl_funcs_loaded=0;
 static int sdl_initialized=0;
 static int sdl_audio_initialized=0;
@@ -228,6 +230,12 @@ int load_sdl_funcs(struct sdlfuncs *sdlf)
 		xp_dlclose(sdl_dll);
 		return(-1);
 	}
+	{
+		int (HACK_HACK_HACK *ra)(char *name, Uint32 style, void *hInst);
+		if ((ra = xp_dlsym(sdl_dll, SDL_RegisterApp)) != NULL) {
+			ra(ciolib_appname, 0, NULL);
+		}
+	}
 
 	sdlf->gotfuncs=1;
 	sdl_funcs_loaded=1;