diff --git a/src/g_game.c b/src/g_game.c
index 10e841f64949bd81934f1a892d81ad0f8820f662..569d777ab97738c3c7dcbd18a1298e9cc00e67df 100644
--- a/src/g_game.c
+++ b/src/g_game.c
@@ -4936,6 +4936,12 @@ void G_ReadMetalTic(mobj_t *metal)
 	if (!metal_p)
 		return;
 
+	if (!metal->health)
+	{
+		G_StopMetalDemo();
+		return;
+	}
+
 	switch (*metal_p)
 	{
 		case METALSNICE: