diff --git a/source/games/duke/src/gameloop.cpp b/source/games/duke/src/gameloop.cpp
index 4dc73dd31..f54b34442 100644
--- a/source/games/duke/src/gameloop.cpp
+++ b/source/games/duke/src/gameloop.cpp
@@ -61,6 +61,10 @@ void GameInterface::Ticker()
 
 		ud.cameraactor = nullptr;
 
+		// temporary workaround for issue where first packet
+		// seems captured after the playsim has ran once.
+		playercmds[myconnectindex].ucmd.actions |= gi->GetNeededInputBits();
+
 		// this must be done before the view is backed up.
 		for (int i = connecthead; i >= 0; i = connectpoint2[i])
 		{