diff --git a/ffs-set-segment/files/etc/init.d/ffs-set-segment b/ffs-set-segment/files/etc/init.d/ffs-set-segment
index 8197714b07e5c83d03b8ed18a7b204a938e35888..15dfcf08112d1e83fb388debdfeeed47773a241e 100755
--- a/ffs-set-segment/files/etc/init.d/ffs-set-segment
+++ b/ffs-set-segment/files/etc/init.d/ffs-set-segment
@@ -8,7 +8,6 @@ start () {
         /etc/init.d/fastd restart
     fi
 
-    rm /tmp/.seg.ffs
     /etc/init.d/micrond enable
     /etc/init.d/micrond restart
 }
diff --git a/ffs-set-segment/files/usr/sbin/ffs-set-segment b/ffs-set-segment/files/usr/sbin/ffs-set-segment
index 7759bbff3d07ef98c46402e40a51cb456ff876bb..3fe94ea5881eb82cb3e07b3adcd8fef8fc9ae7e9 100755
--- a/ffs-set-segment/files/usr/sbin/ffs-set-segment
+++ b/ffs-set-segment/files/usr/sbin/ffs-set-segment
@@ -1,6 +1,4 @@
 #!/bin/sh
-SEGSET=/tmp/.seg.ffs
-
 ME=$(basename $0)
 if [ $(ps | grep -c "$ME") -gt 4 ]; then
   logger -s -t $ME "started twice"
@@ -24,20 +22,30 @@ fi
 
 NODEID=$(uci get network.bat0.macaddr | sed 's/://g')
 PUBKEY=$(/etc/init.d/fastd show_key mesh_vpn | cut -c1-12)
-GITSEG=$(nslookup ffs-${NODEID}-${PUBKEY}.segassign.freifunk-stuttgart.de ::1#54 | grep "2001:2:0:711::" | cut -d':' -f7)
 
+DNSDOM="freifunk-stuttgart.de"
+DNSREQ="ffs-${NODEID}-${PUBKEY}.segassign.${DNSDOM}"
+
+logger -t $ME "DNSv6 on ${DNSREQ} ..."
+GITSEG=$(nslookup ${DNSREQ} ::1#54 | grep "2001:2:0:711::" | cut -d':' -f7)
 if [ -z "$GITSEG" ]; then
-  if [ -f $SEGSET ]; then
-    GITSEG=$(cat $SEGSET)
-    logger -t $ME "Node is in Segment: $GITSEG"
-  else
-    logger -t $ME "Node not registered"
-    GITSEG=99
-  fi
+  logger -t $ME "DNSv4 on ${DNSREQ} ..."
+  GITSEG=$(nslookup ${DNSREQ} ::1#54 | grep "198.18.190." | cut -d'.' -f4)
+fi
+
+if [ -z "$GITSEG" ]; then
+  logger -t $ME "DNS not working!"
+  exit 1
 else
   if [ -n "$BATSEG" ] && [ "$BATSEG" != "$GITSEG" ]; then
-    logger -t $ME "Avoiding Shortcut"
+    logger -t $ME "Avoiding Shortcut: $BATSEG - $GITSEG"
     GITSEG=99
+  else
+    if [ "$GITSEG" = "99" ]; then
+      logger -t $ME "Node not registered"
+    else
+      logger -t $ME "Node is in Segment $GITSEG"
+    fi
   fi
 fi
 
@@ -48,7 +56,7 @@ for i in `seq 1 10`;
 do
   GW=$(printf "gw%02d" $i)
   OLDPEER=$(uci get fastd.mesh_vpn_backbone_peer_${GW}.remote)
-  NEWPEER=$(printf "\"gw%02ds%02d.gw.freifunk-stuttgart.de\" port %d" $i $GITSEG $PORT)
+  NEWPEER=$(printf "\"gw%02ds%02d.gw.${DNSDOM}\" port %d" $i $GITSEG $PORT)
 
   if [ "$NEWPEER" != "$OLDPEER" ]; then
     uci set fastd.mesh_vpn_backbone_peer_${GW}.remote="$NEWPEER"
@@ -57,12 +65,6 @@ do
 done
 
 if [ "$CHANGED" = "1" ]; then
-  if [ "$GITSEG" = "99" ]; then
-    rm $SEGSET
-  else
-    echo $GITSEG >$SEGSET
-  fi
-
   /sbin/ifdown client
   /etc/init.d/fastd restart
   /sbin/ifup client