diff --git a/src/BuildingPlacer.cpp b/src/BuildingPlacer.cpp
index f5394da1625766d27022293bbc6846ef8ae82425..4b048ed71de265e42b17041faa17ba528559855a 100644
--- a/src/BuildingPlacer.cpp
+++ b/src/BuildingPlacer.cpp
@@ -121,6 +121,7 @@ CCTilePosition BuildingPlacer::getBuildLocationNear(const CCTilePosition & p, co
 
     //double ms = t.getElapsedTimeInMilliSec();
     //printf("Building Placer Failure: %s - Took %lf ms\n", b.type.getName().c_str(), ms);
+	std::cout << "Warning! Could not find valid placement for " << t.getName() << " near (" << p.x << ", " << p.y << "). Returning (0, 0) instead.";
 
     return CCTilePosition(0, 0);
 }
diff --git a/src/Unit.cpp b/src/Unit.cpp
index 0380eb7cb30f0e3346eb50da6e8a8e7ad954d648..0bb94a9784e987fff2898534f944bc8018e7b816 100644
--- a/src/Unit.cpp
+++ b/src/Unit.cpp
@@ -269,13 +269,15 @@ void Unit::repair(const Unit & target) const
 
 void Unit::build(const UnitType & buildingType, CCTilePosition pos) const
 {
-	BOT_ASSERT(m_bot->Map().isConnected(getTilePosition(), pos), "Error: Build Position is not connected to worker");
 	BOT_ASSERT(isValid(), "Unit is not valid");
-#ifdef SC2API
-	m_bot->Actions()->UnitCommand(m_unit, m_bot->Data(buildingType).buildAbility, Util::GetPosition(pos));
-#else
-	m_unit->build(buildingType.getAPIUnitType(), pos);
-#endif
+	if (m_bot->Map().isConnected(getTilePosition(), pos))
+	{
+		m_bot->Actions()->UnitCommand(m_unit, m_bot->Data(buildingType).buildAbility, Util::GetPosition(pos));
+	}
+	else
+	{
+		printf("Warning! Cannot build at location (%d, %d) and therefore ignoring command.", pos.x, pos.y);
+	}
 }
 
 void Unit::buildTarget(const UnitType & buildingType, const Unit & target) const