Index: modules/jetty/src/main/java/org/mortbay/jetty/HttpConnection.java
===================================================================
--- modules/jetty/src/main/java/org/mortbay/jetty/HttpConnection.java	(revision 1774)
+++ modules/jetty/src/main/java/org/mortbay/jetty/HttpConnection.java	(working copy)
@@ -27,6 +27,7 @@
 import org.mortbay.io.Connection;
 import org.mortbay.io.EndPoint;
 import org.mortbay.io.BufferCache.CachedBuffer;
+import org.mortbay.io.nio.SelectChannelEndPoint;
 import org.mortbay.log.Log;
 import org.mortbay.resource.Resource;
 import org.mortbay.util.URIUtil;
@@ -431,7 +432,6 @@
                         destroy();
                         return;
                     }
-                    
                 }
                 
                 more_in_buffer = _parser.isMoreInBuffer() || _endp.isBufferingInput();  
@@ -452,6 +452,8 @@
                 {
                     break;
                 }
+                else if (_generator.isCommitted() && !_generator.isComplete())
+                    ((SelectChannelEndPoint)_endp).setWritable(false);
             }
         }
     }
Index: modules/jetty/src/main/java/org/mortbay/io/nio/SelectChannelEndPoint.java
===================================================================
--- modules/jetty/src/main/java/org/mortbay/io/nio/SelectChannelEndPoint.java	(revision 1774)
+++ modules/jetty/src/main/java/org/mortbay/io/nio/SelectChannelEndPoint.java	(working copy)
@@ -269,6 +269,12 @@
     }
 
     /* ------------------------------------------------------------ */
+    public void setWritable(boolean writable)
+    {
+        _writable=writable;
+    }
+    
+    /* ------------------------------------------------------------ */
     /**
      * Updates selection key. Adds operations types to the selection key as needed. No operations
      * are removed as this is only done during dispatch. This method records the new key and
