diff --git a/src/xpdev/xpbeep.c b/src/xpdev/xpbeep.c
index 4a2fc7175d9dc9e1a7556dd276882f2723a51bd2..4fa3ba61f12a4b2292bec887e708fce4cf47f2e2 100644
--- a/src/xpdev/xpbeep.c
+++ b/src/xpdev/xpbeep.c
@@ -625,16 +625,14 @@ void xp_play_sample_thread(void *data)
 
 	#ifdef USE_ALSA_SOUND
 		if(handle_type==SOUND_DEVICE_ALSA) {
-			if(playback_handle != NULL) {
-				if(alsa_api->snd_pcm_writei(playback_handle, sample_buffer, sample_size)!=sample_size) {
-					/* Go back and try OSS */
-					alsa_device_open_failed=TRUE;
-					xptone_close();
-					xptone_open();
-				}
-				else {
-					alsa_api->snd_pcm_drain(playback_handle);
-				}
+			if(alsa_api->snd_pcm_writei(playback_handle, sample_buffer, sample_size)!=sample_size) {
+				/* Go back and try OSS */
+				alsa_device_open_failed=TRUE;
+				xptone_close();
+				xptone_open();
+			}
+			else {
+				alsa_api->snd_pcm_drain(playback_handle);
 			}
 		}
 	#endif
@@ -760,19 +758,17 @@ BOOL DLLCALL xp_play_sample(const unsigned char *sample, size_t sample_size, BOO
 
 #ifdef USE_ALSA_SOUND
 	if(handle_type==SOUND_DEVICE_ALSA) {
-		if(playback_handle != NULL) {
-			if(alsa_api->snd_pcm_writei(playback_handle, sample, sample_size)!=sample_size) {
-				/* Go back and try OSS */
-				alsa_device_open_failed=TRUE;
+		if(alsa_api->snd_pcm_writei(playback_handle, sample, sample_size)!=sample_size) {
+			/* Go back and try OSS */
+			alsa_device_open_failed=TRUE;
+			xptone_close();
+			xptone_open();
+		}
+		else {
+			alsa_api->snd_pcm_drain(playback_handle);
+			if(must_close)
 				xptone_close();
-				xptone_open();
-			}
-			else {
-				alsa_api->snd_pcm_drain(playback_handle);
-				if(must_close)
-					xptone_close();
-				return(TRUE);
-			}
+			return(TRUE);
 		}
 	}
 #endif