Index: /trunk/src/VBox/Devices/Network/slirp/ip_icmp.c
===================================================================
--- /trunk/src/VBox/Devices/Network/slirp/ip_icmp.c	(revision 27466)
+++ /trunk/src/VBox/Devices/Network/slirp/ip_icmp.c	(revision 27467)
@@ -188,4 +188,16 @@
                 }
                 icp0 = (struct icmp *)((char *)ip0 + (ip0->ip_hl << 2));
+                /* 
+                 * IP could pointer to ICMP_REPLY datagram (1) 
+                 * or pointer IP header in ICMP payload in case of 
+                 * ICMP_TIMXCEED or ICMP_UNREACH (2)
+                 * 
+                 * if (1) and then ICMP (type should be ICMP_ECHOREPLY) and we need check that
+                 * IP.IP_SRC == IP0.IP_DST received datagramm comes from destination.
+                 *
+                 * if (2) then check that payload ICMP has got type ICMP_ECHO and 
+                 * IP.IP_DST == IP0.IP_DST destination of returned datagram is the same as
+                 * one was sent.
+                 */
                 if (  (   (icp->icmp_type != ICMP_ECHO && ip->ip_src.s_addr == ip0->ip_dst.s_addr)
                        || (icp->icmp_type == ICMP_ECHO && ip->ip_dst.s_addr == ip0->ip_dst.s_addr))
