diff --git a/src/p_floor.c b/src/p_floor.c
index b65435c21a745b0fa9fd5ed22c0906d344f94d85..1028641c6ea52b8706cc2c7dd65d1ca72993a8be 100644
--- a/src/p_floor.c
+++ b/src/p_floor.c
@@ -1861,12 +1861,11 @@ void EV_CrumbleChain(sector_t *sec, ffloor_t *rover)
 		}
 	}
 
-#undef controlsec
-
-	// soundorg z height never gets set normally, so MEH.
-	sec->soundorg.z = sec->floorheight;
+	sec->soundorg.z = (controlsec->floorheight + controlsec->ceilingheight)/2;
 	S_StartSound(&sec->soundorg, mobjinfo[type].activesound);
 
+#undef controlsec
+
 	// Find the outermost vertexes in the subsector
 	for (i = 0; i < sec->linecount; i++)
 	{