diff --git a/src/game/level/Level.cpp b/src/game/level/Level.cpp
index 99cee073e13235cebed06e352633ee8273e09e6a..99728574c80ff8ee85e8883c5d050df5c302f6b4 100644
--- a/src/game/level/Level.cpp
+++ b/src/game/level/Level.cpp
@@ -754,7 +754,9 @@ void Level::handleSelectingEvents(Engine& engine, SDL_Event& event)
                             if (building.getXPosition() == u.getXPosition() &&
                                 building.getYPosition() == u.getYPosition())
                             {
-                                if (building.getFaction() != u.getFaction())
+                                if ((building.getFaction() != u.getFaction()) &&
+                                    (u.getUnitTypeId() == UnitTypeId::INFANTERY ||
+                                     u.getUnitTypeId() == UnitTypeId::MECHANIZED_INFANTERY))
                                 {
                                     m_captureBuilding = id;
                                     m_contextMenu.setOptions(