diff -abur a/common/console.c b/common/console.c
--- a/common/console.c	2000-09-27 16:19:44.000000000 +0200
+++ b/common/console.c	2003-09-11 19:59:46.037562040 +0200
@@ -3,6 +3,14 @@
 #include "id_us.h"
 #include "console.h"
 
+#ifdef _LINUX
+#include <string.h>
+#endif
+
+#ifdef _LINUX
+#include <string.h>
+#endif
+
 static char con_lines[32][45];	// buffer
 static int con_active;			// console is visible
 static int con_current;			// current line
diff -abur a/common/id_in.h b/common/id_in.h
--- a/common/id_in.h	2000-09-27 16:04:26.000000000 +0200
+++ b/common/id_in.h	2003-09-11 19:32:14.368653880 +0200
@@ -178,6 +178,7 @@
 
 void IN_Startup();
 void IN_Shutdown();
+void IN_KeyEvent(unsigned char key);
 void IN_Default(wbool gotit, ControlType in);
 void IN_ClearKeysDown();
 void IN_ReadControl(int player, ControlInfo *info);
diff -abur a/common/id_vh.c b/common/id_vh.c
--- a/common/id_vh.c	2000-09-26 17:39:36.000000000 +0200
+++ b/common/id_vh.c	2003-09-11 19:24:57.183116184 +0200
@@ -230,3 +230,4 @@
 
 }
 */
\ No newline at end of file
+
diff -abur a/common/opengl.c b/common/opengl.c
--- a/common/opengl.c	2000-09-27 16:04:26.000000000 +0200
+++ b/common/opengl.c	2003-09-11 19:22:35.622636648 +0200
@@ -1,5 +1,10 @@
 #include <stdio.h>
 #include <stdlib.h>
+
+#ifdef _LINUX
+#include <string.h>
+#endif
+
 #include "system.h"
 #include "opengl.h"
 #include "wl_def.h"
diff -abur a/common/wl_act2.c b/common/wl_act2.c
--- a/common/wl_act2.c	2000-09-27 16:04:26.000000000 +0200
+++ b/common/wl_act2.c	2003-09-11 19:19:45.511497472 +0200
@@ -1,5 +1,9 @@
 // WL_ACT2.C
 
+#ifdef _LINUX
+#include <stdlib.h>
+#endif
+
 #include "wl_def.h"
 
 //=============================================================================
diff -abur a/common/wl_agent.c b/common/wl_agent.c
--- a/common/wl_agent.c	2003-09-11 20:04:40.738760648 +0200
+++ b/common/wl_agent.c	2003-09-11 19:57:06.860760592 +0200
@@ -3,6 +3,10 @@
 #include <string.h>
 #include "wl_def.h"
 
+#ifdef _LINUX
+#include <stdlib.h>
+#endif
+
 //=============================================================================
 //						 LOCAL CONSTANTS
 //=============================================================================
diff -abur a/common/wl_draw.c b/common/wl_draw.c
--- a/common/wl_draw.c	2003-09-11 20:04:40.739760496 +0200
+++ b/common/wl_draw.c	2003-09-11 19:20:33.512200256 +0200
@@ -2,6 +2,11 @@
 
 #include <stdio.h>
 #include <stdlib.h>
+
+#ifdef _LINUX
+#include <string.h>
+#endif
+
 #include "system.h"
 #include "opengl.h"
 #include "wl_def.h"
diff -abur a/common/wl_menu.c b/common/wl_menu.c
--- a/common/wl_menu.c	2000-09-27 16:04:27.000000000 +0200
+++ b/common/wl_menu.c	2003-09-11 20:07:38.892677136 +0200
@@ -5,6 +5,10 @@
 //
 ////////////////////////////////////////////////////////////////////
 
+#ifdef _LINUX
+#include "../linux/input.h"
+#endif
+
 #include <string.h>
 #include "opengl.h"
 #include "wl_def.h"
diff -abur a/common/wl_menu.h b/common/wl_menu.h
--- a/common/wl_menu.h	2000-09-26 17:38:31.000000000 +0200
+++ b/common/wl_menu.h	2003-09-11 18:31:41.593919584 +0200
@@ -233,3 +233,4 @@
 void NonShareware();
 /*int GetYorN(int x,int y,int pic);
 */
\ No newline at end of file
+
diff -abur a/common/wl_play.c b/common/wl_play.c
--- a/common/wl_play.c	2000-09-27 16:04:27.000000000 +0200
+++ b/common/wl_play.c	2003-09-11 19:40:31.293109880 +0200
@@ -1,6 +1,11 @@
 // WL_PLAY.C
 
 #include <memory.h>
+
+#ifdef _LINUX
+#include "../linux/input.h"
+#endif
+
 #include "wl_def.h"
 #include "system.h"
 
diff -abur a/common/wl_state.c b/common/wl_state.c
--- a/common/wl_state.c	2000-09-27 16:04:27.000000000 +0200
+++ b/common/wl_state.c	2003-09-11 19:23:26.895841936 +0200
@@ -2,6 +2,10 @@
 
 #include "wl_def.h"
 
+#ifdef _LINUX
+#include <stdlib.h>
+#endif
+
 //=============================================================================
 //						 GLOBAL VARIABLES
 //=============================================================================
diff -abur a/common/wl_text.c b/common/wl_text.c
--- a/common/wl_text.c	2000-09-26 17:40:23.000000000 +0200
+++ b/common/wl_text.c	2003-09-11 19:19:00.110399488 +0200
@@ -4,6 +4,10 @@
 #include "wl_def.h"
 #include "system.h"
 
+#ifdef _LINUX
+#include <string.h>
+#endif
+
 #ifndef SPEAR
 
 void FreeMusic(); // WL_MENU.C
diff -abur a/linux/sound.c b/linux/sound.c
--- a/linux/sound.c	2000-09-26 17:57:48.000000000 +0200
+++ b/linux/sound.c	2003-09-11 19:55:16.702507192 +0200
@@ -9,6 +9,8 @@
 #include <stdlib.h>
 
 #include <sys/time.h>
+#include <string.h>
+#include <errno.h>
 
 #include <fcntl.h>
 #include <unistd.h>
diff -abur a/linux/sound.h b/linux/sound.h
--- a/linux/sound.h	2000-09-26 17:57:48.000000000 +0200
+++ b/linux/sound.h	2003-09-11 19:44:03.663824624 +0200
@@ -1,5 +1,8 @@
 void S_LoadSound(int id, void* data, long length);
 void S_PlaySound(int id, int pan);
+void S_UpdateSound();
+void S_InitSound();
+void S_ShutDownSound();
 
 extern int DigitalDevice;
 
diff -abur a/linux/system.c b/linux/system.c
--- a/linux/system.c	2000-09-26 17:57:48.000000000 +0200
+++ b/linux/system.c	2003-09-11 19:42:14.955350824 +0200
@@ -1,9 +1,12 @@
 #include <stdio.h>
+#include <string.h>
+#include <unistd.h>
 #include <sys/time.h>
 #include <X11/keysym.h>
 #include <GL/gl.h>
 #include <GL/glx.h>
 #include "wl_def.h"
+#include "sound.h"
 
 int screen_width, screen_height;
 Display *dpy;
@@ -117,7 +120,7 @@
    visinfo = glXChooseVisual( dpy, scrnum, attrib );
    if (!visinfo) {
       printf("Error: couldn't get an RGB, Double-buffered visual\n");
-      exit(1);
+      _exit(1);
    }
 
    /* window attributes */
