diff --git a/objects/oPlayer/Collision_oMonster.gml b/objects/oPlayer/Collision_oMonster.gml
index fadd6b6..c38fe0d 100644
--- a/objects/oPlayer/Collision_oMonster.gml
+++ b/objects/oPlayer/Collision_oMonster.gml
@@ -8,12 +8,13 @@ if (pdv <= 0) {
 }
 
 // pushback
-if (other.x > x) {
-	x -= 10;
-} else if (other.x < x) {
-	x += 10;
-} else if (other.y > y) {
-	y -= 10;
-} else if (other.y < y) {
-	y += 10;
+knockback = 10;
+if (other.x > x && !place_meeting(x-knockback-1, y, oWall)) {
+	x -= knockback;
+} else if (other.x < x && !place_meeting(x+knockback+1, y, oWall)) {
+	x += knockback;
+} else if (other.y > y && !place_meeting(x, y-knockback-1, oWall)) {
+	y -= knockback;
+} else if (other.y < y && !place_meeting(x, y+knockback+1, oWall)) {
+	y += knockback;
 }
\ No newline at end of file