Index: open-invaders-0.3/headers/init.h
===================================================================
--- open-invaders-0.3.orig/headers/init.h
+++ open-invaders-0.3/headers/init.h
@@ -27,7 +27,7 @@ void load_hiscore();
 void save_hiscore();
 void load_config();
 void save_config();
-void initialise_game();
+int initialise_game();
 void predefine_variables();
 void reset_shields();
 BITMAP *oi_load_graphic(std::string filename, std::string defsymbol);
Index: open-invaders-0.3/src/init.cc
===================================================================
--- open-invaders-0.3.orig/src/init.cc
+++ open-invaders-0.3/src/init.cc
@@ -520,9 +520,9 @@ void save_config()
 }
 	  
 
-void initialise_game()
+int initialise_game()
 {
-	allegro_init();
+	if (allegro_init() != 0) return -1;
 	atexit(&dumb_exit);
 	dumb_register_stdfiles();
 	install_timer();
@@ -535,8 +535,7 @@ void initialise_game()
 	difficulty=2;
 	music_volume=5;
 	sfx_volume=250;
-	
-	
+	return 0;
 };
 
 void predefine_variables()
Index: open-invaders-0.3/src/main.cc
===================================================================
--- open-invaders-0.3.orig/src/main.cc
+++ open-invaders-0.3/src/main.cc
@@ -78,7 +78,11 @@ int main(int argc, char *argv[])
 	
 	// Setup variables, load files etc.
 	
-	initialise_game();
+	if (initialise_game() != 0) {
+		cout << "Failed to initialise Allegro (no X display?)\n";
+		allegro_exit();
+		return 1;
+	}
 	cout << "Allegro initialised...\n";
 	
 	// Quickly load config file and parse to see if the fullscreen variable
