diff --git a/ffs-set-segment/files/usr/sbin/ffs-set-segment b/ffs-set-segment/files/usr/sbin/ffs-set-segment
index b0fe05fc46e436f8d7c7a878216132d353d53daf..4ad24d08fe891ba6b38225ac32d15ee162631f50 100755
--- a/ffs-set-segment/files/usr/sbin/ffs-set-segment
+++ b/ffs-set-segment/files/usr/sbin/ffs-set-segment
@@ -17,20 +17,13 @@ if [ "$(cat /proc/uptime | cut -d'.' -f1)" -lt 60 ]; then
   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::")
+BATSEG=$(batctl gwl | grep '* ' | cut -d' ' -f2 | sed 's/:0/:/g' | cut -d':' -f4)
+GITSEG=$(nslookup ffs-${NODEID}-${PUBKEY}.segassign.freifunk-stuttgart.de ::1#54 | grep "2001:2:0:711::" | cut -d':' -f7)
 
-if [ -z "$SEGINFO" ]; then
+if [ -z "$GITSEG" ]; then
   logger -t $ME "Node not registered"
-  GITSEG=00
-else
-  GITSEG=$(printf "%02d" $(echo ${SEGINFO/Address 1: 2001:2:0:711::/} |cut -d' ' -f1 | cut -d':' -f2))
-fi
-
-if [ "$GITSEG" == "00" ]; then
-  logger -t $ME "Unknown Segment"
   GITSEG=99
 else
   if [ -n "$BATSEG" ] && [ "$BATSEG" != "$GITSEG" ]; then
@@ -41,11 +34,12 @@ fi
 
 let PORT=GITSEG+10200
 CHANGED=0
+
 for i in `seq 1 10`;
 do
   GW=$(printf "gw%02d" $i)
   OLDPEER=$(uci get fastd.mesh_vpn_backbone_peer_${GW}.remote)
-  NEWPEER="\"${GW}s${GITSEG}.gw.freifunk-stuttgart.de\" port $PORT"
+  NEWPEER=$(printf "\"gw%02ds%02d.gw.freifunk-stuttgart.de\" port %d" $i $GITSEG $PORT)
 
   if [ "$NEWPEER" != "$OLDPEER" ]; then
     uci set fastd.mesh_vpn_backbone_peer_${GW}.remote="$NEWPEER"