diff --git a/src/eu/simstadt/regionchooser/RegionExtractor.java b/src/eu/simstadt/regionchooser/RegionExtractor.java
index 4ab4b54f060f35a66f7b4751596b9f1c57acac28..cc681af25d66506d17fae7245a0e37dec60c3234 100644
--- a/src/eu/simstadt/regionchooser/RegionExtractor.java
+++ b/src/eu/simstadt/regionchooser/RegionExtractor.java
@@ -59,11 +59,13 @@ static public StringBuffer selectRegionDirectlyFromCityGML(Path citygmlPath, Str
 				sb.append(replaceEnvelopeInHeader(citygml.getHeader(), poly.getEnvelopeInternal(), srsName));
 			}
 			buildingsCount += 1;
-			Coordinate coord = new Coordinate(buildingXmlNode.x, buildingXmlNode.y);
-			Point point = gf.createPoint(coord);
-			if (point.within(poly)) {
-				foundBuildingsCount++;
-				sb.append(buildingXmlNode.toString());
+			if (buildingXmlNode.hasCoordinates()) {
+				Coordinate coord = new Coordinate(buildingXmlNode.x, buildingXmlNode.y);
+				Point point = gf.createPoint(coord);
+				if (point.within(poly)) {
+					foundBuildingsCount++;
+					sb.append(buildingXmlNode.toString());
+				}
 			}
 			if (buildingsCount % 1000 == 0) {
 				LOGGER.info("1000 buildings parsed");