diff --git a/src/game/penguin.cpp b/src/game/penguin.cpp
index 6acc76d52d787d86e88544ad6910c4c1d55a3897..dde9a8791eee90db08dced98f77572f8cf05ddd4 100644
--- a/src/game/penguin.cpp
+++ b/src/game/penguin.cpp
@@ -177,48 +177,48 @@ namespace game
 		uint8_t move_number = ((*p) >> 6) & 63; //Move number for the current penguin
 		uint32_t penguin_copy = (*p) >> 12;
 		//Direction A
-		if((penguin_copy & 7) >= move_number)
+		if((penguin_copy & 7) > move_number)
 		{
 			//Move direction A
-			(*p) = (7 * move_number +1) + ((*p) & 63);
+			(*p) = (7 * (move_number +1)) + ((*p) & 63);
 			return;
 		}
 		move_number -= penguin_copy & 7;
 		penguin_copy = penguin_copy >> 3;
-		if((penguin_copy & 7) >= move_number)
+		if((penguin_copy & 7) > move_number)
 		{
 			//Move direction B
-			(*p) = (-1 * move_number +1) + ((*p) & 63);
+			(*p) = (-1 * (move_number +1)) + ((*p) & 63);
 			return;
 		}
 		move_number -= penguin_copy & 7;
 		penguin_copy = penguin_copy >> 3;
-		if((penguin_copy & 7) >= move_number)
+		if((penguin_copy & 7) > move_number)
 		{
 			//Move direction C
-			(*p) = (-8 * move_number +1) + ((*p) & 63);
+			(*p) = (-8 * (move_number +1)) + ((*p) & 63);
 			return;
 		}
 		move_number -= penguin_copy & 7;
 		penguin_copy = penguin_copy >> 3;
-		if((penguin_copy & 7) >= move_number)
+		if((penguin_copy & 7) > move_number)
 		{
 			//Move direction D
-			(*p) = (-7 * move_number +1) + ((*p) & 63);
+			(*p) = (-7 * (move_number +1)) + ((*p) & 63);
 			return;
 		}
 		move_number -= penguin_copy & 7;
 		penguin_copy = penguin_copy >> 3;
-		if((penguin_copy & 7) >= move_number)
+		if((penguin_copy & 7) > move_number)
 		{
 			//Move direction E
-			(*p) = (1 * move_number +1) + ((*p) & 63);
+			(*p) = (1 * (move_number +1)) + ((*p) & 63);
 			return;
 		}
 		move_number -= penguin_copy & 7;
 		penguin_copy = penguin_copy >> 3;
 		//Move direction F
-		(*p) = (8 * move_number +1) + ((*p) & 63);
+		(*p) = (8 * (move_number +1)) + ((*p) & 63);
 	}
 
 	int penguin::update_moves(uint32_t* p, uint64_t obstacles)