diff --git i/src/connection-editor/page-master.c w/src/connection-editor/page-master.c
index 42d97da0771a7749..e73c08f5080e21fe 100644
--- i/src/connection-editor/page-master.c
+++ w/src/connection-editor/page-master.c
@@ -196,16 +196,18 @@ get_device_for_connection (NMClient *client, NMConnection *conn)
 	if (   !nm_setting_connection_get_interface_name (s_con)
 	       && !nm_connection_get_interface_name (conn)) {
 		NMSetting *s_hw;
-		GByteArray *mac_address;
+		gchar *mac_address;
 
 		s_hw = nm_connection_get_setting_by_name (conn, nm_setting_connection_get_connection_type (s_con));
 		if (!s_hw || !g_object_class_find_property (G_OBJECT_GET_CLASS (s_hw), "mac-address"))
 			return NULL;
 
 		g_object_get (G_OBJECT (s_hw), "mac-address", &mac_address, NULL);
-		if (!mac_address)
+		if (!mac_address || !mac_address[0]) {
+			g_free (mac_address);
 			return NULL;
-		g_byte_array_unref (mac_address);
+		}
+		g_free (mac_address);
 	}
 
 	/* OK, now find that device */
