diff --git a/game/engines/default/engine/interface/PlayerRun.lua b/game/engines/default/engine/interface/PlayerRun.lua
index 185779b90267499c00e3a999be31c0e5f26eda7c..ca4f8f675a673a003eabe823f7c0a2af7310c304 100644
--- a/game/engines/default/engine/interface/PlayerRun.lua
+++ b/game/engines/default/engine/interface/PlayerRun.lua
@@ -27,7 +27,7 @@ module(..., package.seeall, class.make)
 local function checkDir(a, dir, dist)
 	dist = dist or 1
 	local x, y = a.x, a.y
-	for i = 1, dist do util.coordAddDir(x, y, dir) end
+	for i = 1, dist do x, y = util.coordAddDir(x, y, dir) end
 	-- don't treat other actors as terrain or as something to notice (let the module handle this)
 	if game.level.map(x, y, game.level.map.ACTOR) and not game.level.map:checkEntity(x, y, game.level.map.TERRAIN, "block_move") then return false end
 	return (game.level.map:checkAllEntities(x, y, "block_move", a) or not game.level.map:isBound(x, y)) and true or false
diff --git a/game/modules/tome/data/general/traps/complex.lua b/game/modules/tome/data/general/traps/complex.lua
index a47e1dcf2246de673223772486f6afacb617d6f6..0317f90702c653fbb256e06f126713038b7c3aa7 100644
--- a/game/modules/tome/data/general/traps/complex.lua
+++ b/game/modules/tome/data/general/traps/complex.lua
@@ -43,7 +43,7 @@ newEntity{ base = "TRAP_COMPLEX",
 				g = game.level.map(i, j, engine.Map.TERRAIN)
 			until not g or g:check("block_move")
 			if g and not g.is_door and core.fov.distance(x, y, i, j) >= 2 then
-				i, j = util.coordAddDir(i, j, opposed_dir[dir])
+				i, j = util.coordAddDir(i, j, util.opposedDir(dir, i, j))
 				walls[#walls+1] = {x=i, y=j}
 			end
 		end