Index: /trunk/src/VBox/Devices/Network/slirp/ip_icmpwin.c
===================================================================
--- /trunk/src/VBox/Devices/Network/slirp/ip_icmpwin.c	(revision 53309)
+++ /trunk/src/VBox/Devices/Network/slirp/ip_icmpwin.c	(revision 53310)
@@ -22,49 +22,8 @@
 #include <icmpapi.h>
 
-/*
- * XXX: we don't support w2k anymore, so we may just as well link to
- * iphlpapi.dll and use direct references now.  Besides, we already
- * refer to some of Icmp* functions directly anyway.
- */
-#include <iprt/ldr.h>
 
 int
 icmpwin_init(PNATState pData)
 {
-    RTLDRMOD hLdrMod;
-    int rc;
-
-    rc = RTLdrLoadSystem("Iphlpapi.dll", true /*fNoUnload*/, &hLdrMod);
-    if (RT_SUCCESS(rc))
-    {
-        pData->pfIcmpParseReplies = (long (WINAPI *)(void *, long))RTLdrGetFunction(hLdrMod, "IcmpParseReplies");
-        pData->pfIcmpCloseHandle = (BOOL (WINAPI *)(HANDLE))RTLdrGetFunction(hLdrMod, "IcmpCloseHandle");
-        RTLdrClose(hLdrMod);
-    }
-
-    if (pData->pfIcmpParseReplies == NULL)
-    {
-        int rc = RTLdrLoadSystem("Icmp.dll", true /*fNoUnload*/, &hLdrMod);
-        if (RT_FAILURE(rc))
-        {
-            LogRel(("NAT: Icmp.dll could not be loaded: %Rrc\n", rc));
-            return 1;
-        }
-        pData->pfIcmpParseReplies = (long (WINAPI *)(void *, long))RTLdrGetFunction(hLdrMod, "IcmpParseReplies");
-        pData->pfIcmpCloseHandle = (BOOL (WINAPI *)(HANDLE))RTLdrGetFunction(hLdrMod, "IcmpCloseHandle");
-        RTLdrClose(hLdrMod);
-    }
-
-    if (pData->pfIcmpParseReplies == NULL)
-    {
-        LogRel(("NAT: Can't find IcmpParseReplies symbol\n"));
-        return 1;
-    }
-    if (pData->pfIcmpCloseHandle == NULL)
-    {
-        LogRel(("NAT: Can't find IcmpCloseHandle symbol\n"));
-        return 1;
-    }
-
     pData->icmp_socket.sh = IcmpCreateFile();
     pData->phEvents[VBOX_ICMP_EVENT_INDEX] = CreateEvent(NULL, FALSE, FALSE, NULL);
@@ -79,5 +38,5 @@
 icmpwin_finit(PNATState pData)
 {
-    pData->pfIcmpCloseHandle(pData->icmp_socket.sh);
+    IcmpCloseHandle(pData->icmp_socket.sh);
     RTMemFree(pData->pvIcmpBuffer);
 }
Index: /trunk/src/VBox/Devices/Network/slirp/slirp_state.h
===================================================================
--- /trunk/src/VBox/Devices/Network/slirp/slirp_state.h	(revision 53309)
+++ /trunk/src/VBox/Devices/Network/slirp/slirp_state.h	(revision 53310)
@@ -203,9 +203,4 @@
     void *pvIcmpBuffer;
     uint32_t cbIcmpBuffer;
-    /* According MSDN specification IcmpParseReplies
-     * function should be detected at runtime.
-     */
-    long (WINAPI * pfIcmpParseReplies)(void *, long);
-    BOOL (WINAPI * pfIcmpCloseHandle)(HANDLE);
 # endif
 #if defined(RT_OS_WINDOWS)
Index: /trunk/src/VBox/Devices/Network/slirp/socket.c
===================================================================
--- /trunk/src/VBox/Devices/Network/slirp/socket.c	(revision 53309)
+++ /trunk/src/VBox/Devices/Network/slirp/socket.c	(revision 53310)
@@ -1461,5 +1461,5 @@
     int size;
 
-    len = pData->pfIcmpParseReplies(pData->pvIcmpBuffer, pData->cbIcmpBuffer);
+    len = IcmpParseReplies(pData->pvIcmpBuffer, pData->cbIcmpBuffer);
     if (len < 0)
     {
