diff --git a/src/simutrans/builder/fabrikbauer.cc b/src/simutrans/builder/fabrikbauer.cc
index 8ce6db17e..d538ea27f 100644
--- a/src/simutrans/builder/fabrikbauer.cc
+++ b/src/simutrans/builder/fabrikbauer.cc
@@ -861,8 +861,9 @@ int factory_builder_t::build_chain_link(const fabrik_t* our_fab, const factory_d
 		koord3d parent_pos = our_fab->get_pos();
 		// ignore climates after 40 tries
 
-		// if climates are ignored, then placement as well ...
-		factory_desc_t::site_t placement = ignore_climates ? (producer_d->get_placement() == factory_desc_t::City ? factory_desc_t::City : factory_desc_t::Land) : producer_d->get_placement();
+		// ignoring climates must not change the site type: Water/river/shore/City are
+		// geographic, not climate, constraints (thread 23725: oil rig forced onto land)
+		factory_desc_t::site_t placement = producer_d->get_placement();
 
 		INT_CHECK("fabrikbauer 697");
 
