$NetBSD: patch-ak,v 1.5 2005/08/16 15:35:51 adam Exp $

--- src/libgame/system.c.orig	2005-06-27 20:26:12.000000000 +0000
+++ src/libgame/system.c
@@ -1279,10 +1279,14 @@ inline void InitJoysticks()
   return;	/* joysticks generally deactivated by compile-time directive */
 #endif
 
+  /* pkgsrc: InitJoystick will be called more than once, so reset
+   * the state variable 'joystick' only if there's no joystick available (yet)
+   */
   /* always start with reliable default values */
-  joystick.status = JOYSTICK_NOT_AVAILABLE;
-  for (i = 0; i < MAX_PLAYERS; i++)
-    joystick.fd[i] = -1;		/* joystick device closed */
+  if (joystick.status == JOYSTICK_NOT_AVAILABLE) {
+    for (i=0; i<MAX_PLAYERS; i++)
+      joystick.fd[i] = -1;		/* joystick device closed */
+  }
 
 #if defined(TARGET_SDL)
   SDLInitJoysticks();
