diff --git a/src/Makefile b/src/Makefile
index 8b64de55b4d4dda2786667f525b8b11843f0d821..27151cd3ec33fd0c79421c212addc016efe66685 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -60,7 +60,6 @@
 #     Generate compiler errors for most compiler warnings, add 'ERRORMODE=1'
 #     Compile without NASM's tmap.nas, add 'NOASM=1'
 #     Compile without 3D hardware support, add 'NOHW=1'
-#     Compile without 3D sound support, add 'NOHS=1'
 #     Compile with GDBstubs, add 'RDB=1'
 #     Compile without PNG, add 'NOPNG=1'
 #     Compile without zlib, add 'NOZLIB=1'
@@ -172,7 +171,6 @@ NOPNG=1
 NOZLIB=1
 NONET=1
 NOHW=1
-NOHS=1
 NOASM=1
 NOIPX=1
 EXENAME?=srb2dummy
@@ -194,7 +192,6 @@ endif
 ifdef PANDORA
 NONX86=1
 NOHW=1
-NOHS=1
 endif
 
 ifndef NOOPENMPT
@@ -276,13 +273,6 @@ else
 		 $(OBJDIR)/hw_md2load.o $(OBJDIR)/hw_md3load.o $(OBJDIR)/hw_model.o $(OBJDIR)/u_list.o $(OBJDIR)/hw_batching.o
 endif
 
-ifdef NOHS
-	OPTS+=-DNOHS
-else
-	OPTS+=-DHW3SOUND
-	OBJS+=$(OBJDIR)/hw3sound.o
-endif
-
 OPTS += -DCOMPVERSION
 
 ifndef NONX86
@@ -803,19 +793,6 @@ $(OBJDIR)/ogl_win.o: hardware/r_opengl/ogl_win.c hardware/r_opengl/r_opengl.h \
 	$(CC) $(CFLAGS) $(WFLAGS) -D_WINDOWS -mwindows -c $< -o $@
 endif
 
-ifndef NOHS
-$(OBJDIR)/s_ds3d.o: hardware/s_ds3d/s_ds3d.c hardware/hw3dsdrv.h \
- hardware/hw_dll.h
-	$(CC) $(ARCHOPTS) -Os -o $(OBJDIR)/s_ds3d.o $(WFLAGS) -D_WINDOWS -mwindows -c hardware/s_ds3d/s_ds3d.c
-
-$(OBJDIR)/s_fmod.o: hardware/s_openal/s_openal.c hardware/hw3dsdrv.h \
- hardware/hw_dll.h
-	$(CC) $(ARCHOPTS) -Os -o $(OBJDIR)/s_fmod.o $(WFLAGS) -D_WINDOWS -mwindows -c hardware/s_fmod/s_fmod.c
-
-$(OBJDIR)/s_openal.o: hardware/s_openal/s_openal.c hardware/hw3dsdrv.h \
- hardware/hw_dll.h
-	$(CC) $(ARCHOPTS) -Os -o $(OBJDIR)/s_openal.o $(WFLAGS) -D_WINDOWS -mwindows -c hardware/s_openal/s_openal.c
-endif
 endif
 endif
 
diff --git a/src/d_main.c b/src/d_main.c
index 25209de68c772a05c0b5827cabe8f67dcdc35ac1..f6394704ed72c74f8fb60621054f80f6b5106909 100644
--- a/src/d_main.c
+++ b/src/d_main.c
@@ -648,6 +648,7 @@ static void D_Display(void)
 			V_DrawThinString(80, 40, V_MONOSPACE | V_BLUEMAP, s);
 			if (rendermode == render_opengl) // OpenGL specific stats
 			{
+#ifdef HWRENDER
 				snprintf(s, sizeof s - 1, "nsrt %d", rs_hw_nodesorttime / divisor);
 				V_DrawThinString(30, 40, V_MONOSPACE | V_YELLOWMAP, s);
 				snprintf(s, sizeof s - 1, "ndrw %d", rs_hw_nodedrawtime / divisor);
@@ -680,6 +681,7 @@ static void D_Display(void)
 					snprintf(s, sizeof s - 1, "ncol %d", rs_hw_numcolors);
 					V_DrawThinString(185, 30, V_MONOSPACE | V_PURPLEMAP, s);
 				}
+#endif
 			}
 			else // software specific stats
 			{
diff --git a/src/doomdef.h b/src/doomdef.h
index 6645fb834489b68c43b29de6d1d59f36b55fbfbe..24898bdf627d4d1fcc2e3062f0d0d794e9c0e5fb 100644
--- a/src/doomdef.h
+++ b/src/doomdef.h
@@ -29,7 +29,6 @@
 // Use Mixer interface?
 #ifdef HAVE_MIXER
     #define SOUND SOUND_MIXER
-    #define NOHS // No HW3SOUND
     #ifdef HW3SOUND
     #undef HW3SOUND
     #endif
@@ -45,7 +44,6 @@
 // Use FMOD?
 #ifdef HAVE_FMOD
     #define SOUND SOUND_FMOD
-    #define NOHS // No HW3SOUND
     #ifdef HW3SOUND
     #undef HW3SOUND
     #endif
@@ -62,10 +60,6 @@
 #if !defined (HWRENDER) && !defined (NOHW)
 #define HWRENDER
 #endif
-// judgecutor: 3D sound support
-#if !defined(HW3SOUND) && !defined (NOHS)
-#define HW3SOUND
-#endif
 #endif
 
 #ifdef _WIN32
diff --git a/src/sdl/Makefile.cfg b/src/sdl/Makefile.cfg
index 68e616f01a742dbf9c1636678cfd3db63bb5d843..45d0d6ba75a666cba5e4e2c3a3f9704987705cb6 100644
--- a/src/sdl/Makefile.cfg
+++ b/src/sdl/Makefile.cfg
@@ -53,28 +53,6 @@ ifndef NOHW
 	OBJS+=$(OBJDIR)/r_opengl.o $(OBJDIR)/ogl_sdl.o
 endif
 
-ifndef NOHS
-ifdef OPENAL
-	OBJS+=$(OBJDIR)/s_openal.o
-	OPTS+=-DSTATIC3DS
-	STATICHS=1
-else
-ifdef FMOD
-	OBJS+=$(OBJDIR)/s_fmod.o
-	OPTS+=-DSTATIC3DS
-	STATICHS=1
-else
-ifdef MINGW
-ifdef DS3D
-	OBJS+=$(OBJDIR)/s_ds3d.o
-	OPTS+=-DSTATIC3DS
-	STATICHS=1
-endif
-endif
-endif
-endif
-endif
-
 ifdef NOMIXER
 	i_sound_o=$(OBJDIR)/sdl_sound.o
 else
diff --git a/src/sdl/i_video.c b/src/sdl/i_video.c
index 01194a02fa00e1ecb4bb2af51e078fa1d6e0980b..5c5b6119c60824541156a28188d6cdb96d82ff16 100644
--- a/src/sdl/i_video.c
+++ b/src/sdl/i_video.c
@@ -1478,6 +1478,7 @@ static SDL_bool Impl_CreateContext(void)
 
 void VID_CheckGLLoaded(rendermode_t oldrender)
 {
+	(void)oldrender;
 #ifdef HWRENDER
 	if (vid_opengl_state == -1) // Well, it didn't work the first time anyway.
 	{
diff --git a/src/sdl/mixer_sound.c b/src/sdl/mixer_sound.c
index ef34b266df277eefe4bbbb8a19c8139fac7b0523..25e7fde8981c01755b7a77972b1114db09730ef4 100644
--- a/src/sdl/mixer_sound.c
+++ b/src/sdl/mixer_sound.c
@@ -220,6 +220,7 @@ static void var_cleanup(void)
 	internal_volume = 100;
 }
 
+#if defined (HAVE_LIBGME) && defined (HAVE_ZLIB)
 static const char* get_zlib_error(int zErr)
 {
 	switch (zErr)
@@ -240,6 +241,7 @@ static const char* get_zlib_error(int zErr)
 			return "unknown error";
 	}
 }
+#endif
 
 /// ------------------------
 /// Audio System