diff --git a/builtin/game/falling.lua b/builtin/game/falling.lua
index fa7ff24bce5b0d7146553f7c6c2382c983deaffd..4b16a05865f6592c2c91d92b3c6f4532b124d64a 100644
--- a/builtin/game/falling.lua
+++ b/builtin/game/falling.lua
@@ -130,7 +130,11 @@ function check_attached_node(p, n)
 	local def = core.registered_nodes[n.name]
 	local d = {x = 0, y = 0, z = 0}
 	if def.paramtype2 == "wallmounted" then
-		d = core.wallmounted_to_dir(n.param2)
+		-- The fallback vector here is in case 'wallmounted to dir' is nil due
+		-- to voxelmanip placing a wallmounted node without resetting a
+		-- pre-existing param2 value that is out-of-range for wallmounted.
+		-- The fallback vector corresponds to param2 = 0.
+		d = core.wallmounted_to_dir(n.param2) or {x = 0, y = 1, z = 0}
 	else
 		d.y = -1
 	end