Index: /trunk/src/VBox/Devices/Network/slirp/socket.c
===================================================================
--- /trunk/src/VBox/Devices/Network/slirp/socket.c	(revision 55001)
+++ /trunk/src/VBox/Devices/Network/slirp/socket.c	(revision 55002)
@@ -779,9 +779,13 @@
 
             /*
-             *  last argument should be changed if Slirp will inject IP attributes
-             *  Note: Here we can't check if dnsproxy's sent initial request
+             * DNS proxy requests are forwarded to the real resolver,
+             * but its socket's so_faddr is that of the DNS proxy
+             * itself.
+             *
+             * last argument should be changed if Slirp will inject IP attributes
              */
             if (   pData->fUseDnsProxy
-                && so->so_fport == RT_H2N_U16_C(53))
+                && so->so_fport == RT_H2N_U16_C(53)
+                && CTL_CHECK(so->so_faddr.s_addr, CTL_DNS))
                 dnsproxy_answer(pData, so, m);
 
