--- i_svgalib.c	1999/09/22 09:34:40	1.6
+++ i_svgalib.c	1999/10/15 21:33:51
@@ -402,17 +402,17 @@
 	if(origin == NULL)
 	{
 		origin = players[displayplayer].mo;
-
-        // How does the DOS version work without this?
-        // players[0].mo does not get set until P_SpawnPlayer. - KR
-        if( origin == NULL )
-            return;
 	}
 	if(volume == 0)
 	{
 		return;
 	}
 
+    // How does the DOS version work without this check?
+    // players[0].mo does not get set until P_SpawnPlayer. - KR
+     
+    if( origin )
+    {
 	// calculate the distance before other stuff so that we can throw out
 	// sounds that are beyond the hearing range.
 	absx = abs(origin->x-players[displayplayer].mo->x);
@@ -446,6 +446,18 @@
 			break;
 		}
 	}
+    }
+    else
+    {
+        dist = 0;
+        priority = S_sfx[sound_id].priority;
+        if( ! S_StopSoundID( sound_id, priority ) )
+        {
+            return; // other sounds have greater priority
+        }
+    }
+    
+
 	if(i >= snd_Channels)
 	{
 		for(i = 0; i < snd_Channels; i++)
