diff --git a/src/camel/camel-network-service.c b/src/camel/camel-network-service.c
index 383f1080c..033072323 100644
--- a/src/camel/camel-network-service.c
+++ b/src/camel/camel-network-service.c
@@ -835,6 +835,13 @@ camel_network_service_ref_connectable (CamelNetworkService *service)
 		/* This may return NULL if we don't have valid network
 		 * settings from which to create a GSocketConnectable. */
 		connectable = iface->new_connectable (service);
+
+		if (connectable) {
+			camel_binding_bind_property (
+				service, "proxy-resolver",
+				connectable, "proxy-resolver",
+				G_BINDING_SYNC_CREATE);
+		}
 	}
 
 	return connectable;
@@ -879,6 +886,13 @@ camel_network_service_set_connectable (CamelNetworkService *service,
 
 	priv->connectable = connectable;
 
+	if (priv->connectable) {
+		camel_binding_bind_property (
+			service, "proxy-resolver",
+			priv->connectable, "proxy-resolver",
+			G_BINDING_SYNC_CREATE);
+	}
+
 	g_mutex_unlock (&priv->property_lock);
 
 	network_service_update_host_reachable (service);
diff --git a/src/libebackend/e-backend.c b/src/libebackend/e-backend.c
index 3c92f47d3..8ca2d0027 100644
--- a/src/libebackend/e-backend.c
+++ b/src/libebackend/e-backend.c
@@ -172,6 +172,13 @@ backend_update_online_state_timeout_cb (gpointer user_data)
 
 		e_backend_set_online (backend, TRUE);
 	} else {
+		if (g_object_class_find_property (G_OBJECT_GET_CLASS (backend), "proxy-resolver")) {
+			e_binding_bind_property (
+				backend, "proxy-resolver",
+				connectable, "proxy-resolver",
+				G_BINDING_SYNC_CREATE);
+		}
+
 		cancellable = g_cancellable_new ();
 
 		g_network_monitor_can_reach_async (
@@ -1501,6 +1508,13 @@ e_backend_is_destination_reachable (EBackend *backend,
 
 			connectable = g_network_address_new (host, port);
 			if (connectable) {
+				if (g_object_class_find_property (G_OBJECT_GET_CLASS (backend), "proxy-resolver")) {
+					e_binding_bind_property (
+						backend, "proxy-resolver",
+						connectable, "proxy-resolver",
+						G_BINDING_SYNC_CREATE);
+				}
+
 				reachable = g_network_monitor_can_reach (
 					network_monitor, connectable,
 					cancellable, error);
