--- tcp_input.c.orig	2008-12-15 18:25:25.000000000 +0100
+++ tcp_input.c	2008-12-31 12:20:45.000000000 +0100
@@ -232,8 +232,12 @@
          */
         if (so->so_state & SS_FCANTSENDMORE)
             m_freem(pData, q->tqe_m);
-        else
+        else {
+            if (so->so_emu) {
+                if (tcp_emu(pData, so,q->tqe_m)) sbappend(pData, so, q->tqe_m);
+            } else
             sbappend(pData, so, q->tqe_m);
+        }
         free(q);
         tp->t_segqlen--;
         tcp_reass_qsize--;
@@ -1430,9 +1434,13 @@
             tcpstat.tcps_rcvbyte += tlen;
             if (so->so_state & SS_FCANTRCVMORE)
                 m_freem(pData, m);
-            else
+            else {
+                if (so->so_emu) {
+                    if (tcp_emu(pData, so,m)) sbappend(pData, so, m);
+                } else
                 sbappend(pData, so, m);
         }
+        }
         else
         {
             tiflags = tcp_reass(pData, tp, &ti->ti_t, &tlen, m);
