diff --git a/src/p_enemy.c b/src/p_enemy.c
index 30c5b88fbff64c2d6b3cf75baa8e00df10bfe53e..1e72c39e815f4d41793a126be871679289fb14fd 100644
--- a/src/p_enemy.c
+++ b/src/p_enemy.c
@@ -5038,7 +5038,7 @@ void A_SignSpin(mobj_t *actor)
 				P_SetMobjState(actor, actor->info->deathstate);
 				return;
 			}
-			if (actor->state-states != actor->info->painstate)
+			if ((statenum_t)(actor->state-states) != actor->info->painstate)
 				P_SetMobjState(actor, actor->info->painstate);
 			actor->movedir = min((mapangle - actor->angle) >> 2, actor->movedir);
 		}