diff --git a/wpa_supplicant/events.c b/wpa_supplicant/events.c
index 42c4dea..a878735 100644
--- a/wpa_supplicant/events.c
+++ b/wpa_supplicant/events.c
@@ -1025,6 +1025,11 @@ static int wpa_supplicant_need_to_roam(struct
wpa_supplicant *wpa_s,
 		return 1;
 	}

+	if ((current_bss->level < 0) && (current_bss->level > selected->level)) {
+		wpa_dbg(wpa_s, MSG_DEBUG, "Skip roam - Current BSS has better signal level");
+		return 0;
+	}
+
 	min_diff = 2;
 	if (current_bss->level < 0) {
