diff --git a/esp8266/modnetwork.c b/esp8266/modnetwork.c
index 32eaf689dbcec9f3d94f0d02930fe69c7547114f..1c9c98201d00593871c71b5cd677006ce8173a5b 100644
--- a/esp8266/modnetwork.c
+++ b/esp8266/modnetwork.c
@@ -264,6 +264,15 @@ STATIC mp_obj_t esp_config(size_t n_args, const mp_obj_t *args, mp_map_t *kwargs
                         cfg.ap.authmode = mp_obj_get_int(kwargs->table[i].value);
                         break;
                     }
+                    case QS(MP_QSTR_password): {
+                        req_if = SOFTAP_IF;
+                        mp_uint_t len;
+                        const char *s = mp_obj_str_get_data(kwargs->table[i].value, &len);
+                        len = MIN(len, sizeof(cfg.ap.password) - 1);
+                        memcpy(cfg.ap.password, s, len);
+                        cfg.ap.password[len] = 0;
+                        break;
+                    }
                     default:
                         goto unknown;
                 }
diff --git a/esp8266/qstrdefsport.h b/esp8266/qstrdefsport.h
index 2c0a33525da80d8ef3c15b022364e32cd37d4d32..08e284a59d0317a481c64b00ec074c9046a24a68 100644
--- a/esp8266/qstrdefsport.h
+++ b/esp8266/qstrdefsport.h
@@ -126,6 +126,7 @@ Q(AUTH_WPA_WPA2_PSK)
 // config keys
 Q(essid)
 Q(authmode)
+Q(password)
 
 // Pin class
 Q(Pin)