diff --git a/esp8266/modnetwork.c b/esp8266/modnetwork.c
index 4ad4137b6cd6cf9dae0acc041f0fd238449b85ff..d398e876d6a9d0725eab872b1ab714776a7c9823 100644
--- a/esp8266/modnetwork.c
+++ b/esp8266/modnetwork.c
@@ -155,9 +155,10 @@ STATIC void esp_scan_cb(scaninfo *si, STATUS status) {
 }
 
 STATIC mp_obj_t esp_scan(mp_obj_t self_in) {
-    if (wifi_get_opmode() == SOFTAP_MODE) {
+    require_if(self_in, STATION_IF);
+    if ((wifi_get_opmode() & STATION_MODE) == 0) {
         nlr_raise(mp_obj_new_exception_msg(&mp_type_OSError,
-            "scan unsupported in AP mode"));
+            "STA must be active"));
     }
     mp_obj_t list = mp_obj_new_list(0, NULL);
     esp_scan_list = &list;