diff --git a/src/game.cpp b/src/game.cpp
index a5011b6ffa14aa854d570ede3fb1c7550f71de42..3fbfad801f48e1bdc71d62779a80ec48f2b46bc4 100644
--- a/src/game.cpp
+++ b/src/game.cpp
@@ -808,6 +808,8 @@ void nodePlacementPrediction(Client &client,
 			MapNode n_under = map.getNode(nodepos);
 			if(nodedef->get(n_under).buildable_to)
 				p = nodepos;
+			else if (!nodedef->get(map.getNode(p)).buildable_to)
+				return;
 		}catch(InvalidPositionException &e){}
 		// Find id of predicted node
 		content_t id;