diff --git a/src/drivers/driver.h b/src/drivers/driver.h
index fa49da4..511f613 100644
--- a/src/drivers/driver.h
+++ b/src/drivers/driver.h
@@ -2046,7 +2046,15 @@ enum wpa_event_type {
 	 * observed in frames received from the current AP if signal strength
 	 * monitoring has been enabled with signal_monitor().
 	 */
-	EVENT_SIGNAL_CHANGE
+	EVENT_SIGNAL_CHANGE,
+
+	/**
+	 * EVENT_BROADCOM_CUSTOM - Broadcom custom event
+	 *
+	 * This event is sent when failing to associate while running the
+	 * initial scan.
+	 */
+	EVENT_BROADCOM_CUSTOM
 };
 
 
diff --git a/src/drivers/driver_wext.c b/src/drivers/driver_wext.c
index 2614f23..04094ee 100644
--- a/src/drivers/driver_wext.c
+++ b/src/drivers/driver_wext.c
@@ -299,6 +299,9 @@ wpa_driver_wext_event_wireless_custom(void *ctx, char *custom)
 		}
 		wpa_supplicant_event(ctx, EVENT_STKSTART, &data);
 #endif /* CONFIG_PEERKEY */
+	} else if (os_strncmp(custom, "Conn NoNetworks", 15) == 0) {
+		wpa_printf(MSG_DEBUG, "WEXT: Broadcom custom event");
+		wpa_supplicant_event(ctx, EVENT_BROADCOM_CUSTOM, &data);
 	}
 }
 
diff --git a/wpa_supplicant/events.c b/wpa_supplicant/events.c
index 2f3a303..c2fc28a 100644
--- a/wpa_supplicant/events.c
+++ b/wpa_supplicant/events.c
@@ -1726,6 +1726,15 @@ void wpa_supplicant_event(void *ctx, enum wpa_event_type event,
 		bgscan_notify_signal_change(
 			wpa_s, data->signal_change.above_threshold);
 		break;
+	case EVENT_BROADCOM_CUSTOM:
+		wpa_printf(MSG_DEBUG, "Broadcom event in state %d",
+			   wpa_s->wpa_state);
+		if (wpa_s->wpa_state == WPA_SCANNING) {
+			/* Force scanning */
+			wpa_s->scan_req = 1;
+			wpa_supplicant_req_scan(wpa_s, 0, 0);
+		}
+		break;
 	default:
 		wpa_printf(MSG_INFO, "Unknown event %d", event);
 		break;
