diff --git a/gio/gdbusprivate.c b/gio/gdbusprivate.c
index aa2a16e..faa82ad 100644
--- a/gio/gdbusprivate.c
+++ b/gio/gdbusprivate.c
@@ -1493,6 +1493,7 @@ _g_dbus_worker_flush_sync (GDBusWorker    *worker,
 #define G_DBUS_DEBUG_RETURN         (1<<7)
 #define G_DBUS_DEBUG_EMISSION       (1<<8)
 #define G_DBUS_DEBUG_ADDRESS        (1<<9)
+#define G_DBUS_DEBUG_PROXY          (1<<10)
 
 static gint _gdbus_debug_flags = 0;
 
@@ -1566,6 +1567,13 @@ _g_dbus_debug_address (void)
   return (_gdbus_debug_flags & G_DBUS_DEBUG_ADDRESS) != 0;
 }
 
+gboolean
+_g_dbus_debug_proxy (void)
+{
+  _g_dbus_initialize ();
+  return (_gdbus_debug_flags & G_DBUS_DEBUG_PROXY) != 0;
+}
+
 G_LOCK_DEFINE_STATIC (print_lock);
 
 void
@@ -1614,7 +1622,8 @@ _g_dbus_initialize (void)
             { "incoming",       G_DBUS_DEBUG_INCOMING       },
             { "return",         G_DBUS_DEBUG_RETURN         },
             { "emission",       G_DBUS_DEBUG_EMISSION       },
-            { "address",        G_DBUS_DEBUG_ADDRESS        }
+            { "address",        G_DBUS_DEBUG_ADDRESS        },
+            { "proxy",          G_DBUS_DEBUG_PROXY          }
           };
 
           _gdbus_debug_flags = g_parse_debug_string (debug, keys, G_N_ELEMENTS (keys));
diff --git a/gio/gdbusprivate.h b/gio/gdbusprivate.h
index 651d4d6..ac24020 100644
--- a/gio/gdbusprivate.h
+++ b/gio/gdbusprivate.h
@@ -89,6 +89,7 @@ gboolean _g_dbus_debug_incoming (void);
 gboolean _g_dbus_debug_return (void);
 gboolean _g_dbus_debug_emission (void);
 gboolean _g_dbus_debug_address (void);
+gboolean _g_dbus_debug_proxy   (void);
 
 void     _g_dbus_debug_print_lock (void);
 void     _g_dbus_debug_print_unlock (void);
diff --git a/gio/gdbusproxy.c b/gio/gdbusproxy.c
index 5e82e32..b2a08db 100644
--- a/gio/gdbusproxy.c
+++ b/gio/gdbusproxy.c
@@ -1077,11 +1077,14 @@ on_name_owner_changed_get_all_cb (GDBusConnection *connection,
        *
        * Either way, apps can know about this by using
        * get_cached_property_names() or get_cached_property().
-       *
-       * TODO: handle G_DBUS_DEBUG flag 'proxy' and, if enabled, log the
-       * fact that GetAll() failed
        */
-      //g_debug ("error: %d %d %s", error->domain, error->code, error->message);
+      if (G_UNLIKELY (_g_dbus_debug_proxy ()))
+        {
+          g_debug ("error: %d %d %s",
+                   error->domain,
+                   error->code,
+                   error->message);
+        }
       g_error_free (error);
     }
 
@@ -1286,11 +1289,14 @@ async_init_get_all_cb (GDBusConnection *connection,
        *
        * Either way, apps can know about this by using
        * get_cached_property_names() or get_cached_property().
-       *
-       * TODO: handle G_DBUS_DEBUG flag 'proxy' and, if enabled, log the
-       * fact that GetAll() failed
        */
-      //g_debug ("error: %d %d %s", error->domain, error->code, error->message);
+      if (G_UNLIKELY (_g_dbus_debug_proxy ()))
+        {
+          g_debug ("error: %d %d %s",
+                   error->domain,
+                   error->code,
+                   error->message);
+        }
       g_error_free (error);
     }
   else
