Index: /trunk/src/VBox/Devices/Network/slirp/libalias/alias_dns.c
===================================================================
--- /trunk/src/VBox/Devices/Network/slirp/libalias/alias_dns.c	(revision 30920)
+++ /trunk/src/VBox/Devices/Network/slirp/libalias/alias_dns.c	(revision 30921)
@@ -186,4 +186,5 @@
     struct hostent *h = NULL;
     char cname[255];
+    int cname_len = 0;
 
     struct udphdr *udp = NULL;
@@ -195,4 +196,5 @@
         return 0; /* this is respose */
 
+    memset(cname, 0, sizeof(cname));
     qw_qname = (char *)&hdr[1];
     Assert((ntohs(hdr->X.qdcount) == 1));
@@ -207,4 +209,16 @@
 
     QStr2CStr(qw_qname, cname, sizeof(cname));
+    cname_len = RTStrNLen(cname, sizeof(cname));
+    /* Some guests like win-xp adds _dot_ after host name 
+     * and after domain name (not passed with host resolver)
+     * that confuses host resolver.
+     */
+    if (   cname_len > 2 
+        && cname[cname_len - 1] == '.'
+        && cname[cname_len - 2] == '.')
+    {
+        cname[cname_len - 1] = 0;
+        cname[cname_len - 2] = 0;
+    }
     h = gethostbyname(cname);
     fprintf(stderr, "cname:%s\n", cname);
