diff --git a/main.c b/main.c
index e91e699..3b1da46 100644
--- a/main.c
+++ b/main.c
@@ -1,3 +1,4 @@
+#include "common.h"
 #include "cpu.h"
 #include "dbg.h"
 #include "gui.h"
@@ -11,6 +12,18 @@
 
 extern sdl_screen_t *g_scr;
 
+#ifndef NO_PTHREAD
+#include <pthread.h>
+
+
+void cleanup_screen_thread(pthread_t thread)
+{
+	g_screen_thread_halt = true;
+	puts("Cleaning up screen...");
+	pthread_join(thread, NULL);
+}
+#endif
+
 int main(int argc, char **argv)
 {
 	bool disflag = false,
@@ -19,7 +32,8 @@
 		debugflag = false,
 		should_read = false,
 		guiflag = false,
-		scrflag = false;
+		scrflag = false,
+		nohaltflag = false;
 
 	int disasm_len = 0;
 
@@ -27,10 +41,13 @@
 
 	char c;
 
-	while ((c = getopt(argc, argv, "Dsdrhgi:n:")) != -1)
+	while ((c = getopt(argc, argv, "HDsdrhgi:n:")) != -1)
 	{
 		switch (c)
 		{
+		case 'H':
+			nohaltflag = true;
+			break;
 		case 'd':
 			disflag = true;
 			should_read = true;
@@ -68,6 +85,8 @@
 		printf("6502 emulator, disassembler and debugger\n"
 			"Usage:\n"
 			"	-g use GUI\n"
+			"	-s use SDL screen (faster than GUI debugger)\n"
+			"	-H keep running after CPU halts (useful on windows and to look at screen)\n"
 			"	-d disassemble input\n"
 			"	-r run input\n"
 			"	-D open CLI debug prompt (like gdb)\n"
@@ -93,13 +112,18 @@
 	if (scrflag)
 	{
 #ifndef NO_PTHREAD
-		start_screen_thread(cpu.mem + CPU_FB_ADDR);
+		CATCH(&cleanup_screen_thread, start_screen_thread(cpu.mem + CPU_FB_ADDR));
 #else
 		sdl_screen_t scr = new_sdl_screen(8);
 		g_scr = &scr;
 #endif
 	}
 
+	if (guiflag && scrflag)
+	{
+		THROW("-g and -s cannot be used together");
+	}
+
 	if (guiflag)
 	{
 		gui(&cpu);
@@ -111,14 +135,21 @@
 	else if (runflag)
 	{
 		run(&cpu);
+		if (nohaltflag)
+		{
+			puts("Press any key to exit");
+			getchar();
+		}
 	}
 	else if (debugflag)
 	{
 		debug(&cpu);
 	}
 	
+#ifdef NO_PTHREAD
 	if (scrflag)
 		free_sdl_screen(g_scr);
+#endif
 
 	if (should_read)
 		free_cpu(&cpu);
