Index: network-manager-applet-0.8.1+git.20101012t222209.f7588d8/src/applet-device-wifi.c
===================================================================
--- network-manager-applet-0.8.1+git.20101012t222209.f7588d8.orig/src/applet-device-wifi.c	2010-10-19 14:50:26.138591006 -0400
+++ network-manager-applet-0.8.1+git.20101012t222209.f7588d8/src/applet-device-wifi.c	2010-10-19 14:53:03.668591001 -0400
@@ -48,6 +48,8 @@
 
 #define ACTIVE_AP_TAG "active-ap"
 
+#define FPW_SSID "Free Public WiFi"
+
 static void wireless_dialog_response_cb (GtkDialog *dialog, gint response, gpointer user_data);
 
 static NMAccessPoint *update_active_ap (NMDevice *device, NMDeviceState state, NMApplet *applet);
@@ -793,10 +795,23 @@
 	/* Create menu items for the rest of the APs */
 	for (i = 0; aps && (i < aps->len); i++) {
 		NMAccessPoint *ap = g_ptr_array_index (aps, i);
+		const GByteArray *ssid;
 
-		item = get_menu_item_for_ap (wdev, ap, connections, menu_items, applet);
-		if (item)
-			menu_items = g_slist_append (menu_items, item);
+		/* ... But only if it's not "Free Public WiFi", as we most likely don't care
+		 * about it and can't reach anything with it. Someone who still wants to
+		 * access it probably know what they are doing and can use
+		 * "Connect to hidden..."
+		 *
+		 * TODO: Are there other omnipresent spam SSIDs? If so, possibly hide them.
+		 */
+		ssid = nm_access_point_get_ssid (ap);
+		if (ssid) {
+			if (ssid->len != strlen (FPW_SSID) || memcmp (ssid->data, FPW_SSID, ssid->len)) {
+				item = get_menu_item_for_ap (wdev, ap, connections, menu_items, applet);
+				if (item)
+					menu_items = g_slist_append (menu_items, item);
+			}
+		}
 	}
 
 	/* Now remove the active AP item from the list, as we've already dealt with
