--- ssl_engine_io.c	Wed Nov 06 23:26:48 2002
+++ d:\projects\2.x\httpd-2.1\modules\ssl\ssl_engine_io.c	Sat Nov 23 14:19:04 2002
@@ -401,7 +401,7 @@
                                     char *c, apr_size_t *len)
 {
     apr_size_t actual = 0;
-    apr_status_t status;
+    apr_status_t status = APR_SUCCESS;
  
     while (!APR_BRIGADE_EMPTY(bb)) {
         apr_bucket *b = APR_BRIGADE_FIRST(bb);
@@ -450,9 +450,7 @@
 
             c += consume;
             actual += consume;
-        }
 
-        if (b->start >= 0) {
             if (consume >= b->length) {
                 /* This physical bucket was consumed */
                 apr_bucket_delete(b);
@@ -463,6 +461,9 @@
                 b->length -= consume;
             }
         }
+        else if (b->length == 0) {
+            apr_bucket_delete(b);
+        }
 
         /* This could probably be actual == *len, but be safe from stray
          * photons. */
@@ -955,13 +956,6 @@
         type = "abortive";
     }
     else switch (sslconn->shutdown_type) {
-      case SSL_SHUTDOWN_TYPE_UNSET:
-      case SSL_SHUTDOWN_TYPE_STANDARD:
-        /* send close notify, but don't wait for clients close notify
-           (standard compliant and safe, so it's the DEFAULT!) */
-        shutdown_type = SSL_RECEIVED_SHUTDOWN;
-        type = "standard";
-        break;
       case SSL_SHUTDOWN_TYPE_UNCLEAN:
         /* perform no close notify handshake at all
            (violates the SSL/TLS standard!) */
@@ -973,6 +967,16 @@
            (standard compliant, but usually causes connection hangs) */
         shutdown_type = 0;
         type = "accurate";
+        break;
+      default:
+        /*
+         * case SSL_SHUTDOWN_TYPE_UNSET:
+         * case SSL_SHUTDOWN_TYPE_STANDARD:
+         */
+        /* send close notify, but don't wait for clients close notify
+           (standard compliant and safe, so it's the DEFAULT!) */
+        shutdown_type = SSL_RECEIVED_SHUTDOWN;
+        type = "standard";
         break;
     }
 
