diff --git a/wpa_supplicant/config_ssid.h b/wpa_supplicant/config_ssid.h
index 2605ae8..45a423c 100644
--- a/wpa_supplicant/config_ssid.h
+++ b/wpa_supplicant/config_ssid.h
@@ -423,6 +423,13 @@
 	 */
 	int export_keys;
 
+#ifdef ANDROID_P2P
+	/**
+	 * assoc_retry - Number of times association should be retried.
+	 */
+	int assoc_retry;
+#endif
+
 #ifdef CONFIG_HT_OVERRIDES
 	/**
 	 * disable_ht - Disable HT (IEEE 802.11n) for this network
diff --git a/wpa_supplicant/events.c b/wpa_supplicant/events.c
index e729e82..ee0af50 100644
--- a/wpa_supplicant/events.c
+++ b/wpa_supplicant/events.c
@@ -2263,23 +2263,39 @@
 		if (wpa_s->drv_flags & WPA_DRIVER_FLAGS_SME)
 			sme_event_assoc_reject(wpa_s, data);
 #ifdef ANDROID_P2P
-		/* If assoc reject is reported by the driver, then avoid
-		 * waiting for  the authentication timeout. Cancel the
-		 * authentication timeout and retry the assoc.
-		 */
-		if(wpa_s->assoc_retries++ < 5) {
-			wpa_printf(MSG_ERROR, "Retrying assoc "
-			"Iteration:%d", wpa_s->assoc_retries);
-			wpa_supplicant_cancel_auth_timeout(wpa_s);
+#ifdef CONFIG_P2P
+		else if (wpa_s->p2p_group_interface != NOT_P2P_GROUP_INTERFACE) {
+			if (!wpa_s->current_ssid) {
+				wpa_printf(MSG_ERROR, "current_ssid == NULL");
+				break;
+			}
+			/* If assoc reject is reported by the driver, then avoid
+			 * waiting for  the authentication timeout. Cancel the
+			 * authentication timeout and retry the assoc.
+			 */
+			if (wpa_s->current_ssid->assoc_retry++ < 5) {
+				wpa_printf(MSG_ERROR, "Retrying assoc: %d ",
+								wpa_s->current_ssid->assoc_retry);
+				wpa_supplicant_cancel_auth_timeout(wpa_s);
 
-			/* Clear the states */
-			wpa_sm_notify_disassoc(wpa_s->wpa);
-			wpa_supplicant_disassociate(wpa_s, WLAN_REASON_DEAUTH_LEAVING);
+				/* Clear the states */
+				wpa_sm_notify_disassoc(wpa_s->wpa);
+				wpa_supplicant_deauthenticate(wpa_s, WLAN_REASON_DEAUTH_LEAVING);
 
-			wpa_s->reassociate = 1;
-			wpa_supplicant_req_scan(wpa_s, 1, 0);
-		} else
-			wpa_s->assoc_retries = 0;
+				wpa_s->reassociate = 1;
+				wpa_supplicant_req_scan(wpa_s, 1, 0);
+			} else {
+				/* If we ASSOC_REJECT's hits threshold, disable the 
+				 * network
+				 */
+				wpa_printf(MSG_ERROR, "Assoc retry threshold reached. "
+				"Disabling the network");
+				wpa_s->current_ssid->assoc_retry = 0;
+				wpa_supplicant_disable_network(wpa_s, wpa_s->current_ssid);
+				wpas_p2p_group_remove(wpa_s, wpa_s->ifname);
+			}
+		}
+#endif
 #endif /* ANDROID_P2P */
 		break;
 	case EVENT_AUTH_TIMED_OUT:
diff --git a/wpa_supplicant/wpa_supplicant.c b/wpa_supplicant/wpa_supplicant.c
index cb5b42f..e1ad4d9 100644
--- a/wpa_supplicant/wpa_supplicant.c
+++ b/wpa_supplicant/wpa_supplicant.c
@@ -582,8 +582,9 @@
 		wpa_supplicant_state_txt(state));
 
 #ifdef ANDROID_P2P
-	if(state == WPA_ASSOCIATED || (state <= WPA_INACTIVE))
-		wpa_s->assoc_retries = 0;
+	if(state == WPA_ASSOCIATED && wpa_s->current_ssid) {
+		wpa_s->current_ssid->assoc_retry = 0;
+	}
 #endif /* ANDROID_P2P */
 
 	if (state != WPA_SCANNING)
diff --git a/wpa_supplicant/wpa_supplicant_i.h b/wpa_supplicant/wpa_supplicant_i.h
index 33b6258..21fe5cc 100644
--- a/wpa_supplicant/wpa_supplicant_i.h
+++ b/wpa_supplicant/wpa_supplicant_i.h
@@ -276,9 +276,6 @@
 	struct wpa_bss *current_bss;
 	int ap_ies_from_associnfo;
 	unsigned int assoc_freq;
-#ifdef ANDROID_P2P
-	unsigned int assoc_retries;
-#endif
 
 	/* Selected configuration (based on Beacon/ProbeResp WPA IE) */
 	int pairwise_cipher;
