--- jakarta-tomcat-connectors/jk/java/org/apache/jk/common/ChannelSocket.java	2005-03-26 20:24:11.000000000 +0100
+++ jakarta-tomcat-connectors/jk/java/org/apache/jk/common/ChannelSocket.java	2009-06-09 15:08:33.000000000 +0200
@@ -678,6 +678,7 @@
                 status= this.invoke( recv, ep );
                 if( status!= JkHandler.OK ) {
                     log.warn("processCallbacks status " + status );
+                    ((Request)ep.getRequest()).getResponse().finish();
                     break;
                 }
             }
--- jakarta-tomcat-connectors/jk/java/org/apache/jk/common/HandlerRequest.java	2005-03-26 20:24:11.000000000 +0100
+++ jakarta-tomcat-connectors/jk/java/org/apache/jk/common/HandlerRequest.java	2009-06-09 14:41:00.000000000 +0200
@@ -367,8 +367,16 @@
                                  ((Request)ep.getRequest()).unparsedURI());
                 }
             } catch( Exception ex ) {
+                /* If we are here it is because we have a bad header or something like that */
                 log.error( "Error decoding request ", ex );
                 msg.dump( "Incomming message");
+                Response res= ((Request)ep.getRequest()).getResponse();
+                if ( res==null ) {
+                    res=new Response();
+                    ((Request)ep.getRequest()).setResponse(res);
+                }
+                res.setMessage("Bad Request");
+                res.setStatus(400);
                 return ERROR;
             }
 
