diff --git a/src/d_netcmd.c b/src/d_netcmd.c
index 0f859a569f8da6ec8057ff2463a4a00cfbfeb33b..c3cd7daa87c272271135573b47bb3de39625895e 100644
--- a/src/d_netcmd.c
+++ b/src/d_netcmd.c
@@ -874,6 +874,7 @@ void D_RegisterClientCommands(void)
 	CV_RegisterVar(&cv_fullscreen);
 	CV_RegisterVar(&cv_renderview);
 	CV_RegisterVar(&cv_renderhitboxinterpolation);
+	CV_RegisterVar(&cv_renderhitboxgldepth);
 	CV_RegisterVar(&cv_renderhitbox);
 	CV_RegisterVar(&cv_renderer);
 	CV_RegisterVar(&cv_scr_depth);
diff --git a/src/hardware/hw_main.c b/src/hardware/hw_main.c
index bb05f2a6d6f316831aa970102970a0e923e21304..194d68c547e92783402051123213f764637eacb0 100644
--- a/src/hardware/hw_main.c
+++ b/src/hardware/hw_main.c
@@ -4081,8 +4081,8 @@ static void HWR_DrawBoundingBox(gl_vissprite_t *vis)
 		v[017].y = v[020].y = v[021].y = v[025].y = v[026].y = v[027].y = vis->gzt; // top
 
 	Surf.PolyColor = V_GetColor(R_GetBoundingBoxColor(vis->mobj));
-
-	HWR_ProcessPolygon(&Surf, v, 24, PF_Modulated|PF_NoTexture|PF_WireFrame, SHADER_NONE, false);
+	
+	HWR_ProcessPolygon(&Surf, v, 24, (cv_renderhitboxgldepth.value ? 0 : PF_NoDepthTest)|PF_Modulated|PF_NoTexture|PF_WireFrame, SHADER_NONE, false);
 }
 
 // -----------------+
diff --git a/src/r_bbox.c b/src/r_bbox.c
index 7ed693fd0a32322b438f58fc5eff40f4489ffea0..59d0893c4bfe32bd0307573b9406bbff2df28924 100644
--- a/src/r_bbox.c
+++ b/src/r_bbox.c
@@ -34,8 +34,9 @@ static CV_PossibleValue_t renderhitbox_cons_t[] = {
 	{RENDERHITBOX_RINGS, "Rings"},
 	{0}};
 
-consvar_t cv_renderhitbox = CVAR_INIT ("renderhitbox", "Off", 0, renderhitbox_cons_t, NULL);
+consvar_t cv_renderhitbox = CVAR_INIT ("renderhitbox", "Off", CV_CHEAT, renderhitbox_cons_t, NULL);
 consvar_t cv_renderhitboxinterpolation = CVAR_INIT ("renderhitbox_interpolation", "On", CV_SAVE, CV_OnOff, NULL);
+consvar_t cv_renderhitboxgldepth = CVAR_INIT ("renderhitbox_gldepth", "Off", CV_SAVE, CV_OnOff, NULL);
 
 struct bbox_col {
 	INT32 x;
diff --git a/src/screen.h b/src/screen.h
index b021a419dd642c7e2b965ef406779ed60191c875..9222805fb4eaff2cf9669b20a3d57ea597b2e86c 100644
--- a/src/screen.h
+++ b/src/screen.h
@@ -199,7 +199,8 @@ extern CV_PossibleValue_t cv_renderer_t[];
 extern INT32 scr_bpp;
 extern UINT8 *scr_borderpatch; // patch used to fill the view borders
 
-extern consvar_t cv_scr_width, cv_scr_height, cv_scr_depth, cv_renderview, cv_renderer, cv_renderhitbox, cv_renderhitboxinterpolation, cv_fullscreen;
+extern consvar_t cv_scr_width, cv_scr_height, cv_scr_depth, cv_renderview, cv_renderer, cv_fullscreen;
+extern consvar_t cv_renderhitbox, cv_renderhitboxinterpolation, cv_renderhitboxgldepth;
 // wait for page flipping to end or not
 extern consvar_t cv_vidwait;
 extern consvar_t cv_timescale;