diff --git a/nodewatcher/files/lib/ffnw/nodewatcher/nodewatcher.sh b/nodewatcher/files/lib/ffnw/nodewatcher/nodewatcher.sh
index 7fd451a0f0b7e244561387cbc9a0a596af5ddefe..bf898fbb923be569aec4799e63c42f4889500a50 100644
--- a/nodewatcher/files/lib/ffnw/nodewatcher/nodewatcher.sh
+++ b/nodewatcher/files/lib/ffnw/nodewatcher/nodewatcher.sh
@@ -143,33 +143,43 @@ crawl() {
 
 	batman_adv_originators=$(
 		arr=""
-		direct_vpn=false
+		count="0"
+		direct_vpn="false"
 		while read line
 		do
-			case "$line" in
-				*mesh*)
-					direct_vpn=true
-				;;
-				*)
-					arr=$arr"$line|"
-				;;
-			esac
+			if [ ! $count -eq 0 ]; then
+				case "$line" in
+					*mesh*)
+						direct_vpn="true"
+					;;
+					*)
+						arr=$arr"$line|"
+					;;
+				esac
+			fi
+			let "count=count+1"
 		done </sys/kernel/debug/batman_adv/bat0/originators
+
 		OIFS=$IFS
 		IFS='|'
 		for org in $arr
 		do
+			org=$direct_vpn" $org"
 			echo $org | awk \
 			'BEGIN { FS=" "; i=0 }
 			/O/ { next }
 			/B/ { next }
 			{
+				sub("  ", " ", $0)
 				sub("\\(", "", $0)
 				sub("\\)", "", $0)
 				sub("\\[", "", $0)
 				sub("\\]:", "", $0)
 				sub("  ", " ", $0)
-				printf "<originator_"i"><originator>"$1"</originator><link_quality>"$3"</link_quality><nexthop>"$4"</nexthop><last_seen>"$2"</last_seen><outgoing_interface>"$5"</outgoing_interface></originator_"i">"
+				if (($1 == "true" && match($6, "wlan")) || ($1 == "false" && $2 == $5))
+				{
+					printf "<originator_"i"><originator>"$2"</originator><link_quality>"$4"</link_quality><nexthop>"$5"</nexthop><last_seen>"$3"</last_seen><outgoing_interface>"$6"</outgoing_interface></originator_"i">"
+				}
 				i++
 			}'
 		done