diff --git a/src/conio/SDL_win32_main.c b/src/conio/SDL_win32_main.c
index daeb4851b02dbb9e5110945f79cea0acf7a8939c..d261bd0f4feb6bf4a30293f2151feed403424c3d 100644
--- a/src/conio/SDL_win32_main.c
+++ b/src/conio/SDL_win32_main.c
@@ -30,6 +30,7 @@
 /* Include the SDL main definition header */
 #include "SDL.h"
 #include "SDL_main.h"
+extern C_LINKAGE int SDL_main_env(int argc, char *argv[], char **env);
 
 #ifdef main
 # ifndef _WIN32_WCE_EMULATION
@@ -194,7 +195,7 @@ static void __cdecl cleanup_output(void)
 #endif
 
 /* This is where execution begins [console apps] */
-int console_main(int argc, char *argv[])
+int console_main(int argc, char *argv[], char **env)
 {
 	int n;
 	char *bufp, *appname;
@@ -240,7 +241,7 @@ int console_main(int argc, char *argv[])
 	}
 
 	/* Run the application main() code */
-	SDL_main(argc, argv);
+	SDL_main_env(argc, argv, env);
 
 	/* Exit cleanly, calling atexit() functions */
 	exit(0);
@@ -352,5 +353,5 @@ int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR szCmdLine, int sw)
 	ParseCommandLine(cmdline, argv);
 
 	/* Run the main program (after a little SDL initialization) */
-	return(console_main(argc, argv));
+	return(console_main(argc, argv, _environ));
 }
diff --git a/src/conio/sdl_con.c b/src/conio/sdl_con.c
index df71fb0615dd9ac91097ceb12bcca3b3f1ca6242..b924cea412a3cd2bfba1771cf5a30ec12dabab1f 100644
--- a/src/conio/sdl_con.c
+++ b/src/conio/sdl_con.c
@@ -1185,7 +1185,7 @@ int sdl_full_screen_redraw(int force)
 	int y;
 	unsigned int pos;
 	unsigned short *p;
-	unsigned short *newvmem=NULL;
+	unsigned short *newvmem;
 	static unsigned short *vmemcopies[2]={ NULL, NULL };
 	static SDL_Rect	*rects=NULL;
 	static int this_new=0;
@@ -1340,7 +1340,11 @@ int sdl_mouse_thread(void *data)
 }
 
 /* Event Thread */
+#ifndef main
 int main(int argc, char **argv, char **env)
+#else
+int SDL_main_env(int argc, char **argv, char **env)
+#endif
 {
 	unsigned int i;
 	SDL_Event	ev;