Index: /trunk/src/VBox/Devices/Network/slirp/sbuf.c
===================================================================
--- /trunk/src/VBox/Devices/Network/slirp/sbuf.c	(revision 30425)
+++ /trunk/src/VBox/Devices/Network/slirp/sbuf.c	(revision 30426)
@@ -145,14 +145,22 @@
      * ottherwise it'll arrive out of order, and hence corrupt
      */
-    buf = RTMemAlloc(mlen);
-    if (buf == NULL)
-    {
-        ret = 0;
-        goto no_sent;
-    }
-    m_copydata(m, 0, mlen, buf);
+    if (m->m_next)
+    {
+        buf = RTMemAlloc(mlen);
+        if (buf == NULL)
+        {
+            ret = 0;
+            goto no_sent;
+        }
+        m_copydata(m, 0, mlen, buf);
+    }
+    else
+        buf = mtod(m, char *);
+
     if(!so->so_rcv.sb_cc)
         ret = send(so->s, buf, mlen, 0);
-    RTMemFree(buf);
+
+    if (m->m_next)
+        RTMemFree(buf);
 no_sent:
 
