diff --git a/src/drivers/driver_wext.c b/src/drivers/driver_wext.c
index e731101..0139478 100644
--- a/src/drivers/driver_wext.c
+++ b/src/drivers/driver_wext.c
@@ -43,7 +43,12 @@
 static int wpa_driver_wext_finish_drv_init(struct wpa_driver_wext_data *drv);
 static void wpa_driver_wext_disconnect(struct wpa_driver_wext_data *drv);
 static int wpa_driver_wext_set_auth_alg(void *priv, int auth_alg);
-
+#ifdef ANDROID
+extern int wpa_driver_wext_driver_cmd(void *priv, char *cmd, char *buf,
+					size_t buf_len);
+extern int wpa_driver_wext_combo_scan(void *priv,
+					struct wpa_driver_scan_params *params);
+#endif
 
 int wpa_driver_wext_set_auth_param(struct wpa_driver_wext_data *drv,
 				   int idx, u32 value)
@@ -302,6 +307,14 @@
 		}
 		wpa_supplicant_event(ctx, EVENT_STKSTART, &data);
 #endif /* CONFIG_PEERKEY */
+#ifdef ANDROID
+	} else if (os_strncmp(custom, "STOP", 4) == 0) {
+		wpa_msg(ctx, MSG_INFO, WPA_EVENT_DRIVER_STATE "STOPPED");
+	} else if (os_strncmp(custom, "START", 5) == 0) {
+		wpa_msg(ctx, MSG_INFO, WPA_EVENT_DRIVER_STATE "STARTED");
+	} else if (os_strncmp(custom, "HANG", 4) == 0) {
+		wpa_msg(ctx, MSG_INFO, WPA_EVENT_DRIVER_STATE "HANGED");
+#endif /* ANDROID */
 	}
 }
 
@@ -819,6 +832,12 @@
 	}
 
 	drv->mlme_sock = -1;
+#ifdef ANDROID
+	drv->errors = 0;
+	drv->driver_is_started = TRUE;
+	drv->skip_disconnect = 0;
+	drv->bgscan_enabled = 0;
+#endif
 
 	if (wpa_driver_wext_finish_drv_init(drv) < 0)
 		goto err3;
@@ -980,6 +999,13 @@
 	const u8 *ssid = params->ssids[0].ssid;
 	size_t ssid_len = params->ssids[0].ssid_len;
 
+#ifdef ANDROID
+	if (drv->capa.max_scan_ssids > 1) {
+		ret = wpa_driver_wext_combo_scan(priv, params);
+		goto scan_out;
+	}
+#endif
+
 	if (ssid_len > IW_ESSID_MAX_SIZE) {
 		wpa_printf(MSG_DEBUG, "%s: too long SSID (%lu)",
 			   __FUNCTION__, (unsigned long) ssid_len);
@@ -1005,9 +1031,12 @@
 		ret = -1;
 	}
 
+#ifdef ANDROID
+scan_out:
+#endif
 	/* Not all drivers generate "scan completed" wireless event, so try to
 	 * read results after a timeout. */
-	timeout = 5;
+	timeout = 10;
 	if (drv->scan_complete_events) {
 		/*
 		 * The driver seems to deliver SIOCGIWSCAN events to notify
@@ -1539,7 +1568,11 @@
 		drv->capa.auth = WPA_DRIVER_AUTH_OPEN |
 			WPA_DRIVER_AUTH_SHARED |
 			WPA_DRIVER_AUTH_LEAP;
+#ifdef ANDROID
+		drv->capa.max_scan_ssids = WEXT_CSCAN_AMOUNT;
+#else
 		drv->capa.max_scan_ssids = 1;
+#endif
 
 		wpa_printf(MSG_DEBUG, "  capabilities: key_mgmt 0x%x enc 0x%x "
 			   "flags 0x%x",
@@ -1848,7 +1881,11 @@
 			 * BSSID and SSID.
 			 */
 			if (wpa_driver_wext_set_bssid(drv, null_bssid) < 0 ||
+#ifdef ANDROID
+			    0) {
+#else
 			    wpa_driver_wext_set_ssid(drv, (u8 *) "", 0) < 0) {
+#endif
 				wpa_printf(MSG_DEBUG, "WEXT: Failed to clear "
 					   "to disconnect");
 			}
@@ -1863,7 +1900,11 @@
 		for (i = 0; i < 32; i++)
 			ssid[i] = rand() & 0xFF;
 		if (wpa_driver_wext_set_bssid(drv, null_bssid) < 0 ||
+#ifdef ANDROID
+		    0) {
+#else
 		    wpa_driver_wext_set_ssid(drv, ssid, 32) < 0) {
+#endif
 			wpa_printf(MSG_DEBUG, "WEXT: Failed to set bogus "
 				   "BSSID/SSID to disconnect");
 		}
@@ -2317,4 +2358,7 @@
 	.get_capa = wpa_driver_wext_get_capa,
 	.set_operstate = wpa_driver_wext_set_operstate,
 	.get_radio_name = wext_get_radio_name,
+#ifdef ANDROID
+	.driver_cmd = wpa_driver_wext_driver_cmd,
+#endif
 };
diff --git a/src/drivers/driver_wext.h b/src/drivers/driver_wext.h
index 89c13eb..51e4d98 100644
--- a/src/drivers/driver_wext.h
+++ b/src/drivers/driver_wext.h
@@ -50,6 +50,12 @@
 	int cfg80211; /* whether driver is using cfg80211 */
 
 	u8 max_level;
+#ifdef ANDROID
+	int errors;
+	int driver_is_started;
+	int skip_disconnect;
+	int bgscan_enabled;
+#endif
 };
 
 int wpa_driver_wext_get_bssid(void *priv, u8 *bssid);
@@ -84,4 +90,9 @@
 int wpa_driver_wext_cipher2wext(int cipher);
 int wpa_driver_wext_keymgmt2wext(int keymgmt);
 
+#ifdef ANDROID
+#define WPA_EVENT_DRIVER_STATE		"CTRL-EVENT-DRIVER-STATE "
+#define WEXT_CSCAN_AMOUNT		9
+#endif
+
 #endif /* DRIVER_WEXT_H */
