Index: /trunk/src/VBox/Devices/Network/slirp/slirp.c
===================================================================
--- /trunk/src/VBox/Devices/Network/slirp/slirp.c	(revision 45322)
+++ /trunk/src/VBox/Devices/Network/slirp/slirp.c	(revision 45323)
@@ -737,5 +737,13 @@
                 if (so->so_timeout != NULL)
                 {
+                    /* so_timeout - might change the so_expire value or 
+                     * drop so_timeout* from so. 
+                     */
                     so->so_timeout(pData, so, so->so_timeout_arg);
+                    /* on 4.2 so->  
+                     */
+                    if (   so_next->so_prev != so /* so_timeout freed the socket */
+                        || so->so_timeout)  /* so_timeout just freed so_timeout */
+                      CONTINUE_NO_UNLOCK(udp);
                 }
                 UDP_DETACH(pData, so, so_next);
