diff --git a/src/p_mobj.c b/src/p_mobj.c
index ec7455a3c8a135d8637fd07fbf29e2b9a85821f3..2605f6777abc4a0c2bfa69aae98b8b37dea19331 100644
--- a/src/p_mobj.c
+++ b/src/p_mobj.c
@@ -1676,8 +1676,6 @@ static void P_XYFriction(mobj_t *mo, fixed_t oldx, fixed_t oldy)
 				mo->momx = FixedMul(mo->momx, mo->friction);
 				mo->momy = FixedMul(mo->momy, mo->friction);
 			}
-
-			mo->friction = ORIG_FRICTION;
 		}
 	}
 	else
diff --git a/src/p_user.c b/src/p_user.c
index 5cb1d9d5aea95422c58b41493d308eb0382bd673..f6e12ecfa22af2db30fd4751b7128a23fd68a656 100644
--- a/src/p_user.c
+++ b/src/p_user.c
@@ -6000,6 +6000,7 @@ static void P_2dMovement(player_t *player)
 		else if (player->rmomx > -topspeed && cmd->sidemove < 0)
 			P_Thrust(player->mo, movepushangle, movepushforward);
 	}
+	player->mo->friction = ORIG_FRICTION; //katsy: reset player friction AFTER movement code
 }
 
 //#define OLD_MOVEMENT_CODE 1
@@ -6321,6 +6322,7 @@ static void P_3dMovement(player_t *player)
 			player->mo->momy = tempmomy + player->cmomy;
 		}
 	}
+	player->mo->friction = ORIG_FRICTION; //katsy: reset player friction AFTER movement code
 }
 
 //