diff --git a/src/lua_interceptlib.c b/src/lua_interceptlib.c
index ed748e92943cc5ab6dc3b5a82476f029e285c62b..5907b2bf5ac909bced02fab2107f013370831e15 100644
--- a/src/lua_interceptlib.c
+++ b/src/lua_interceptlib.c
@@ -50,10 +50,10 @@ static boolean Lua_PathTraverser(intercept_t *in)
 	LUA_PushUserdata(gL, in, META_INTERCEPT);
 	LUA_Call(gL, 1, 1, -3);
 	
-	traverse = lua_toboolean(gL, -2);
+	traverse = lua_toboolean(gL, -1);
 	lua_pop(gL, 1);
 	
-	return traverse;
+	return !traverse; // Stay consistent with the MobjMoveCollide hook
 }
 
 static int intercept_get(lua_State *L)
diff --git a/src/p_local.h b/src/p_local.h
index 9bc8b4a6597b310b6a762ee545fa3878164a4709..3b61b92295363a8d0ec789ce7920cb94cf417c2d 100644
--- a/src/p_local.h
+++ b/src/p_local.h
@@ -446,8 +446,6 @@ boolean PIT_PushableMoved(mobj_t *thing);
 
 boolean P_DoSpring(mobj_t *spring, mobj_t *object);
 
-boolean PTR_SlideTraverse(intercept_t *in);
-
 INT32 P_GetSectorLightNumAt(sector_t *sector, fixed_t x, fixed_t y, fixed_t z);
 INT32 P_GetLightLevelFromSectorAt(sector_t *sector, fixed_t x, fixed_t y, fixed_t z);
 INT32 P_GetSectorLightLevelAt(fixed_t x, fixed_t y, fixed_t z);
diff --git a/src/p_map.c b/src/p_map.c
index 3ff7d9d90f5ead16ce4fa14ca1b28994d376f6b2..7887c117de56907d7a51eccb3715ec0a32e14d61 100644
--- a/src/p_map.c
+++ b/src/p_map.c
@@ -3526,7 +3526,7 @@ static void PTR_GlideClimbTraverse(line_t *li)
 	}
 }
 
-boolean PTR_SlideTraverse(intercept_t *in)
+static boolean PTR_SlideTraverse(intercept_t *in)
 {
 	line_t *li;