diff --git a/src/p_mobj.c b/src/p_mobj.c
index 6b36020f0d01e7152159297c7bee0b1621d07be7..a28c0a0f56acd00a7dea9582d86d8d7fd54937b5 100644
--- a/src/p_mobj.c
+++ b/src/p_mobj.c
@@ -9313,6 +9313,9 @@ for (i = ((mobj->flags2 & MF2_STRONGBOX) ? strongboxamt : weakboxamt); i; --i) s
 					}
 					return;
 				case MT_PYREFLY:
+					if (mobj->health <= 0)
+						break;
+
 					mobj->extravalue2 = (mobj->extravalue2 + 1) % 3;
 					if (mobj->extravalue2 == 0)
 					{