diff --git a/common/aicore/path_finding.c b/common/aicore/path_finding.c
index 19be518..28e87dd 100644
--- a/common/aicore/path_finding.c
+++ b/common/aicore/path_finding.c
@@ -611,6 +611,12 @@ static bool pf_normal_map_iterate(struct pf_map *pfm)
         continue;
       }
 
+      if (node1->behavior == TB_DONT_LEAVE) {
+        /* We evaluate moves to TB_DONT_LEAVE tiles as a constant single
+         * move for getting straightest paths. */
+        cost = SINGLE_MOVE;
+      }
+
       /* Total cost at tile1. Cost may be negative; see pf_turns(). */
       cost += node->cost;
 
@@ -1356,6 +1362,12 @@ static bool pf_danger_map_iterate(struct pf_map *pfm)
           continue;
         }
 
+        if (node1->behavior == TB_DONT_LEAVE) {
+          /* We evaluate moves to TB_DONT_LEAVE tiles as a constant single
+           * move for getting straightest paths. */
+          cost = SINGLE_MOVE;
+        }
+
         /* Total cost at 'tile1'. */
         cost += loc_cost;
 
@@ -2326,6 +2338,12 @@ static bool pf_fuel_map_iterate(struct pf_map *pfm)
           continue;
         }
 
+        if (node1->behavior == TB_DONT_LEAVE) {
+          /* We evaluate moves to TB_DONT_LEAVE tiles as a constant single
+           * move for getting straightest paths. */
+          cost = SINGLE_MOVE;
+        }
+
         /* Total cost at 'tile1' */
         cost += loc_cost;
 
diff --git a/common/aicore/path_finding.h b/common/aicore/path_finding.h
index 3066507..caca25c 100644
--- a/common/aicore/path_finding.h
+++ b/common/aicore/path_finding.h
@@ -271,7 +271,10 @@
 enum tile_behavior {
   TB_IGNORE = 0,        /* This one will be ignored. */
   TB_DONT_LEAVE,        /* Paths can lead _to_ such tile, but are not
-                         * allowed to go _through_. */
+                         * allowed to go _through_. This move cost is
+                         * always evaluated to a constant single move cost,
+                         * prefering straight paths because we don't need
+                         * moves left to leave this tile. */
   TB_NORMAL             /* Well, normal .*/
 };
 
