diff --git a/src/applet-device-wifi.c b/src/applet-device-wifi.c
index 50d02b0..97587c7 100644
--- a/src/applet-device-wifi.c
+++ b/src/applet-device-wifi.c
@@ -893,6 +893,11 @@ wifi_add_menu_item (NMDevice *device,
 	wdev = NM_DEVICE_WIFI (device);
 	aps = nm_device_wifi_get_access_points (wdev);
 
+	g_print ("    * add menu for dev %s state %d aps %d\n",
+	         nm_device_get_iface (device),
+	         (int) nm_device_get_state (device),
+	         aps ? aps->len : 0);
+
 	if (multiple_devices) {
 		const char *desc;
 
diff --git a/src/applet.c b/src/applet.c
index 5af3a89..4eba65e 100644
--- a/src/applet.c
+++ b/src/applet.c
@@ -1356,12 +1356,16 @@ add_device_items (NMDeviceType type, const GPtrArray *all_devices,
 		GPtrArray *connections;
 
 		dclass = get_device_class (device, applet);
-		if (!dclass)
+		if (!dclass) {
+			g_print ("  * class not found for %s\n", nm_device_get_iface (device));
 			continue;
+		}
 
 		connections = nm_device_filter_connections (device, all_connections);
 		active = applet_find_active_connection_for_device (device, applet, NULL);
 
+		g_print ("  * add device %s class %p\n", nm_device_get_iface (device), dclass);
+
 		dclass->add_menu_item (device, n_devices > 1, connections, active, menu, applet);
 
 		g_ptr_array_unref (connections);
@@ -1740,6 +1744,8 @@ nma_context_menu_update (NMApplet *applet)
 		const GPtrArray *devices;
 		int i;
 
+		g_print ("STATE AWAKE\n");
+
 		devices = nm_client_get_devices (applet->nm_client);
 		for (i = 0; devices && (i < devices->len); i++) {
 			NMDevice *candidate = g_ptr_array_index (devices, i);
@@ -1749,6 +1755,8 @@ nma_context_menu_update (NMApplet *applet)
 			else if (NM_IS_DEVICE_MODEM (candidate))
 				have_wwan = TRUE;
 		}
+	} else {
+		g_print ("STATE ASLEEP\n");
 	}
 
 	if (have_wifi)
@@ -2514,11 +2522,17 @@ applet_get_device_icon_for_state (NMApplet *applet,
 
 	/* First show the best activating device's state */
 	active = applet_get_best_activating_connection (applet, &device);
+	g_print ("    - active: %s, device %s\n",
+	         active ? nm_active_connection_get_id (active) : "<none>",
+	         device ? nm_device_get_iface (device) : "<none>");
 	if (!active || !device) {
 		/* If there aren't any activating devices, then show the state of
 		 * the default active connection instead.
 		 */
 		active = applet_get_default_active_connection (applet, &device);
+		g_print ("    - default: %s, device %s\n",
+		         active ? nm_active_connection_get_id (active) : "<none>",
+		         device ? nm_device_get_iface (device) : "<none>");
 		if (!active || !device)
 			goto out;
 	}
@@ -2526,6 +2540,7 @@ applet_get_device_icon_for_state (NMApplet *applet,
 	state = nm_device_get_state (device);
 
 	dclass = get_device_class (device, applet);
+	g_print ("    - state %d, dclass %p\n", state, dclass);
 	if (dclass) {
 		NMConnection *connection;
 		const char *icon_name = NULL;
@@ -2612,6 +2627,8 @@ applet_update_icon (gpointer user_data)
 		gtk_status_icon_set_visible (applet->status_icon, applet->visible);
 	}
 
+	g_print ("  - update icon: state %d\n", state);
+
 	switch (state) {
 	case NM_STATE_UNKNOWN:
 	case NM_STATE_ASLEEP:
