diff --git a/src/sound/OpenAL/AL_SoundHardware.cpp b/src/sound/OpenAL/AL_SoundHardware.cpp
--- a/src/sound/OpenAL/AL_SoundHardware.cpp
+++ b/src/sound/OpenAL/AL_SoundHardware.cpp
@@ -1545,13 +1545,18 @@ void idSoundHardware_OpenAL::Shutdown()
 	I_ShutdownSoundHardware();
 #endif
 
-	alcMakeContextCurrent( NULL );
-
-	alcDestroyContext( openalContext );
-	openalContext = NULL;
+	if( openalContext != NULL )
+	{
+		alcMakeContextCurrent( NULL );
+		alcDestroyContext( openalContext );
+		openalContext = NULL;
+	}
 
-	alcCloseDevice( openalDevice );
-	openalDevice = NULL;
+	if( openalDevice != NULL )
+	{
+		alcCloseDevice( openalDevice );
+		openalDevice = NULL;
+	}
 	lastDeviceCheckTime = 0;
 	lastPerfPrintTime = 0;
 	reopenDeviceAvailable = false;
