diff --git a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
index ac8cd54..84e7b25 100755
--- a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
+++ b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
@@ -4,7 +4,12 @@
 . /lib/functions/fff/wireless
 . /lib/functions/fff/timeserver
 
+sectorlocal=/etc/sectorfile
+sectortmp=/tmp/sectorfile
+sectorcopy=/www/public/sectorfile
+
 rm -f /tmp/keyxchangev2data
+rm -f "$sectortmp"
 
 # Gatewaycheck function
 isGatewayAvailable() {
@@ -60,6 +65,12 @@ long=$(uci -q get system.@system[0].longitude)
 # if we have Internet, we download the Hoodfile from the keyxchangev2
 if hasInternet ; then
 	wget -T15 -t5 "http://keyserver.freifunk-franken.de/v2/?lat=$lat&long=$long" -O /tmp/keyxchangev2data
+	if uci -q get "system.@system[0].uplink" ; then
+		uci -q delete "system.@system[0].uplink"
+		uci -q commit system
+	fi
+	[ -s "$sectorlocal" ] || rm -f "$sectorcopy" # If internet present, no custom config should be distributed, except when local file is present
+	#UPLINK: No uplink download if internet present
 	#if no Internet, we connect to the hidden AP and download the file from another Node in range
 else
 	# connect to wireless hidden ap here and download the json File from the nearest router
@@ -68,6 +79,11 @@ else
 		#now we haven't a gateway in Range, we search for a hidden AP to get a keyxchangev2data file!
 		#first we delete all wifi settings
 		rm -f /www/public/keyxchangev2data # delete this, so interfaces are recreated if reconnect with unchanged hood file takes place
+		rm -f "$sectorcopy" # always delete: no broadcast for isolated device
+		if uci -q get "system.@system[0].uplink" ; then
+			uci -q delete "system.@system[0].uplink"
+			uci -q commit system
+		fi
 
 		if ! wifiDelAll; then
 			echo "Can't delete current wifi setup"
@@ -100,9 +116,24 @@ else
 		sleep 10;
 		# and here we can download the Hoodfile from the other node
 		wget -T15 -t5 "http://[fe80::1%w2sta]/keyxchangev2data" -O /tmp/keyxchangev2data
+		#UPLINK: Set up uplink data on first contact:
+		if [ -s /tmp/keyxchangev2data ]; then
+			if wget -T15 -t5 "http://[fe80::1%w2sta]/sectorfile" -O "$sectortmp" &&
+				wget -T15 -t5 "http://[fe80::1%w2sta]/cgi-bin/fdff.html" -O /tmp/uplinkmac ; then
+				[ -s /tmp/uplinkmac ] && uplink="$(cat /tmp/uplinkmac)"
+				if [ -n "$uplink" ] ; then
+					uci -q set "system.@system[0].uplink=$uplink"
+					uci -q commit system
+				fi
+				rm -f /tmp/uplinkmac
+			fi
+		fi
 	else
 		echo "We have a Gateway in Range, we load the keyxchangev2data from fe80::1"
 		wget -T15 -t5 "http://[fe80::1%br-mesh]:2342/keyxchangev2data" -O /tmp/keyxchangev2data
+		#UPLINK: Reuse uplink address
+		uplink="$(uci -q get "system.@system[0].uplink")"
+		[ -n "$uplink" ] && wget -T15 -t5 "http://[${uplink}]/sectorfile" -O "$sectortmp"
 	fi
 fi
 
@@ -111,16 +142,33 @@ if [ -s /tmp/keyxchangev2data ]; then
 	# we get a json file in this format: 
 	# https://pw.freifunk-franken.de/patch/205/
 	# but without signature, every hood file we get is valid!
+	
+	[ -s "$sectorlocal" ] && sectortmp="$sectorlocal" # Use local file if present (configuration set by user)
+	if [ -s "$sectortmp" ] ; then
+		json_load "$(cat "$sectortmp")"
+		json_select hood
+		json_get_var s_mesh_id mesh_id
+		json_get_var s_mesh_bssid mesh_bssid
+		json_get_var s_mesh_essid mesh_essid
+		json_get_var s_essid essid
+		json_get_var s_chan2ghz channel2
+		json_get_var s_mesh_type2 mesh_type2
+		json_get_var s_chan5ghz channel5
+		json_get_var s_mesh_type5 mesh_type5
+	fi
 
 	catnew="$(cat /tmp/keyxchangev2data | sed 's/"timestamp":[0-9]*/"timestamp":0/')"
 	catold="$(cat /www/public/keyxchangev2data 2>/dev/null | sed 's/"timestamp":[0-9]*/"timestamp":0/')"
 	sumnew=$(echo "$catnew" | sha256sum | cut -f1 -d " ")
 	sumold=$(echo "$catold" | sha256sum | cut -f1 -d " ")
 
+	sumsnew=$(cat "$sectortmp" | sha256sum | cut -f1 -d " ")
+	sumsold=$(cat "$sectorcopy" | sha256sum | cut -f1 -d " ")
+
 	json_load "$(cat /tmp/keyxchangev2data)"
 
-	if [ "$sumnew" != "$sumold" ]; then
-		echo "New file detect, we reconfigure the Node";
+	if [ "$sumnew" != "$sumold" ] || [ "$sumsnew" != "$sumsold" ] ; then
+		echo "New file detected, we reconfigure the Node";
 
 		json_select hood
 
@@ -140,9 +188,15 @@ if [ -s /tmp/keyxchangev2data ]; then
 		#json_get_var protocol protocol
 		
 		json_select ".." # back to root
-
-		[ -n "$chan2ghz" ] || chan2ghz="1"
-		[ -n "$chan5ghz" ] || chan5ghz="36"
+		
+		[ -n "$s_mesh_id" ] && mesh_id="$s_mesh_id"
+		[ -n "$s_mesh_bssid" ] && mesh_bssid="$s_mesh_bssid"
+		[ -n "$s_mesh_essid" ] && mesh_essid="$s_mesh_essid"
+		[ -n "$s_essid" ] && essid="$s_essid"
+		[ -n "$s_chan2ghz" ] && chan2ghz="$s_chan2ghz"
+		[ -n "$s_mesh_type2" ] && mesh_type2="$s_mesh_type2"
+		[ -n "$s_chan5ghz" ] && chan5ghz="$s_chan5ghz"
+		[ -n "$s_mesh_type5" ] && mesh_type5="$s_mesh_type5"
 
 		echo "Setting hood name: $hood"
 		uci set "system.@system[0].hood=$hood"
@@ -189,9 +243,10 @@ if [ -s /tmp/keyxchangev2data ]; then
 		newntp="${ntpip}" # requires routable address, no link-local
 		[ "$newntp" = "$oldntp" ] || setTimeserver "${newntp}" # only rewrite if changed
 
-		# copy the file to webroot so that other Meshrouter can download it;
+		# copy the file to webroot so that other mesh routers can download it;
 		# copy only after all other steps so IF can be reentered if something goes wrong
 		cp /tmp/keyxchangev2data /www/public/
+		cp "$sectortmp" "$sectorcopy"
 
 	else
 		echo "We have no new file. We do nothing. We try it again in 5 minutes...";
diff --git a/src/packages/fff/fff-web/files/www/public/cgi-bin/fdff.html b/src/packages/fff/fff-web/files/www/public/cgi-bin/fdff.html
new file mode 100755
index 0000000..dc21198
--- /dev/null
+++ b/src/packages/fff/fff-web/files/www/public/cgi-bin/fdff.html
@@ -0,0 +1,10 @@
+#!/usr/bin/haserl
+
+<%
+echo -en "Content-Type: text/plain\r\n\r\n"
+
+prefix="fdff::"
+suffix=$(awk -F: '{ print $1$2":"$3$4":"$5$6 }' /sys/class/net/br-mesh/address)
+addr="$(echo "$prefix$suffix")"
+echo "$addr"
+%>
