diff --git a/lq-wave-300_5_x/files/lib/netifd/wireless/intel.sh b/lq-wave-300_5_x/files/lib/netifd/wireless/intel.sh
index d7fe474c9af06b2156f0347a3f0f91e82c51c6eb..d734946ddd72f7a3e8aa3baca3bce75fa7895be0 100755
--- a/lq-wave-300_5_x/files/lib/netifd/wireless/intel.sh
+++ b/lq-wave-300_5_x/files/lib/netifd/wireless/intel.sh
@@ -838,7 +838,17 @@ list_phy_interfaces() {
 	fi
 }
 
+sync_wifi_creds() {
+        local numofpeers=$(ubus list | grep "/netmode" | wc -l)
+        [ "$numofpeers" -gt "0" ] || return
+        logger -s -t $0 -p user.info "Pushing wifi credentials to all ($numofpeers) ubusproxy peers, just before reloading wifi" 2>/dev/console
+        ubus call netmode sync
+        [ $numofpeers -lt 5 ] && sleep $numofpeers || sleep 5
+}
+
 drv_intel_teardown() {
+	sync_wifi_creds
+
 	wireless_process_kill_all
 
 	json_select data