diff --git a/src/m_cheat.c b/src/m_cheat.c
index 1c1b8c6aa1bbc10827a407dfc22033baa438145b..4c44d4b89ecc076ad53760f2a98118941dff4c6f 100644
--- a/src/m_cheat.c
+++ b/src/m_cheat.c
@@ -1165,7 +1165,7 @@ void OP_ObjectplaceMovement(player_t *player)
 	if (player->pflags & PF_ATTACKDOWN)
 	{
 		// Are ANY objectplace buttons pressed?  If no, remove flag.
-		if (!(cmd->buttons & (BT_ATTACK|BT_TOSSFLAG)))
+		if (!(cmd->buttons & (BT_ATTACK|BT_TOSSFLAG|BT_WEAPONNEXT|BT_WEAPONPREV)))
 			player->pflags &= ~PF_ATTACKDOWN;
 
 		// Do nothing.
@@ -1173,9 +1173,16 @@ void OP_ObjectplaceMovement(player_t *player)
 	}
 
 	if (cmd->buttons & BT_WEAPONPREV)
+	{
 		OP_CycleThings(-1);
-	else if (cmd->buttons & BT_WEAPONNEXT)
+		player->pflags |= PF_ATTACKDOWN;
+	}
+
+	if (cmd->buttons & BT_WEAPONNEXT)
+	{
 		OP_CycleThings(1);
+		player->pflags |= PF_ATTACKDOWN;
+	}
 
 	// Place an object and add it to the maplist
 	if (cmd->buttons & BT_ATTACK)