diff --git a/ffs-set-segment/files/usr/sbin/ffs-set-segment b/ffs-set-segment/files/usr/sbin/ffs-set-segment
index dc42cf65423cea56164255c2982d1c99d77ce18f..b0fe05fc46e436f8d7c7a878216132d353d53daf 100755
--- a/ffs-set-segment/files/usr/sbin/ffs-set-segment
+++ b/ffs-set-segment/files/usr/sbin/ffs-set-segment
@@ -12,34 +12,34 @@ if [ "$(uci get fastd.mesh_vpn_backbone.auto_segment)" = "0" ]; then
   logger -t $ME "auto_segment disabled"
   exit 0
 fi
+if [ "$(cat /proc/uptime | cut -d'.' -f1)" -lt 60 ]; then
+  logger -t $ME "waiting for batman"
+  exit 0
+fi
 
+BATSEG=$(batctl gwl | grep '* ' | cut -d' ' -f2 | cut -d':' -f4)
 NODEID=$(uci get network.bat0.macaddr | sed 's/://g')
 PUBKEY=$(/etc/init.d/fastd show_key mesh_vpn | cut -c1-12)
 SEGINFO=$(nslookup ffs-${NODEID}-${PUBKEY}.segassign.freifunk-stuttgart.de ::1#54 | grep "2001:2:0:711::")
+
 if [ -z "$SEGINFO" ]; then
   logger -t $ME "Node not registered"
-  exit 1
-fi
-SEGINFO=${SEGINFO/Address 1: 2001:2:0:711::/}
-SEGMENT=$(echo $SEGINFO |cut -d' ' -f1 | cut -d':' -f2)
-let PORT=SEGMENT+10200
-if [ $PORT -le 10200 ]; then
-  logger -t $ME "Invalid Segment"
-  exit 1
-fi
-
-if [ "$(cat /proc/uptime | cut -d'.' -f1)" -lt 60 ]; then
-  logger -t $ME "waiting for batman"
-  exit 0
+  GITSEG=00
+else
+  GITSEG=$(printf "%02d" $(echo ${SEGINFO/Address 1: 2001:2:0:711::/} |cut -d' ' -f1 | cut -d':' -f2))
 fi
 
-GITSEG=$(printf "%02d" $SEGMENT)
-BATSEG=$(batctl gwl | grep '* ' | cut -d' ' -f2 | cut -d':' -f4)
-if [ -n "$BATSEG" ] && [ "$BATSEG" != "$GITSEG" ]; then
-  logger -t $ME "Avoiding Shortcut"
-  exit 1
+if [ "$GITSEG" == "00" ]; then
+  logger -t $ME "Unknown Segment"
+  GITSEG=99
+else
+  if [ -n "$BATSEG" ] && [ "$BATSEG" != "$GITSEG" ]; then
+    logger -t $ME "Avoiding Shortcut"
+    GITSEG=99
+  fi
 fi
 
+let PORT=GITSEG+10200
 CHANGED=0
 for i in `seq 1 10`;
 do