diff --git a/buckets/copy_buckets.c b/buckets/copy_buckets.c
index 5ff46d2..fc87c68 100644
--- a/buckets/copy_buckets.c
+++ b/buckets/copy_buckets.c
@@ -87,16 +87,15 @@
 {
     copy_context_t *ctx = bucket->data;
 
-    /* ### disregard MIN_SIZE. a "line" could very well be shorter.  */
+    if (ctx->vecs_count > 0)
+    {
+        /* ### return held data  */
+    }
 
-    /* Returned data will be from current position. */
-    *data = ctx->current;
-    serf_util_readline(&ctx->current, &ctx->remaining, acceptable, found);
+    /* Disregard MIN_SIZE. a "line" could very well be shorter. Just
+       delegate this to the wrapped bucket.  */
 
-    /* See how much ctx->current moved forward. */
-    *len = ctx->current - *data;
-
-    return ctx->remaining ? APR_SUCCESS : APR_EOF;
+    return serf_bucket_readline(ctx->wrapped, acceptable, found, data, len);
 }
 
 
@@ -128,10 +127,14 @@
     for (total = 0, i = *vecs_used; i-- > 0; )
         total += vecs[i].iov_len;
 
-    /* The IOVEC holds at least MIN_SIZE data, so we're good.  */
-    if (total >= ctx->min_size)
+    /* The IOVEC holds at least MIN_SIZE data, so we're good. Or, it
+       holds the amount requested, so we shouldn't try to
+       gather/accumulate more data.  */
+    if (total >= ctx->min_size || total == requested)
         return status;
 
+    /* Use our buffer to get at least MIN_SIZE or REQUESTED bytes of data.  */
+
     /* ### copy into HOLD_BUF. then read/append some more.  */
 
     return status;
@@ -148,6 +151,12 @@
 {
     copy_context_t *ctx = bucket->data;
 
+    /* Any held data means we cannot provide a source for sendfile().  */
+    if (ctx->vecs_count > 0)
+    {
+        /* ### return the held data  */
+    }
+
     return serf_bucket_read_for_sendfile(ctx->wrapped, requested,
                                          hdtr, file, offset, len);
 }
@@ -159,6 +168,11 @@
 {
     copy_context_t *ctx = bucket->data;
 
+    /* If there is some held data (at the front of the read stream), then
+       we definitely don't have the requested bucket type.  */
+    if (ctx->vecs_count > 0)
+        return NULL;
+
     return serf_bucket_read_bucket(ctx->wrapped, type);
 }
 
@@ -169,6 +183,13 @@
 {
     copy_context_t *ctx = bucket->data;
 
+    if (ctx->vecs_count > 0)
+    {
+        *data = ctx->vecs[0].iov_base;
+        *len = ctx->vecs[0].iov_len;
+        return APR_SUCCESS;
+    }
+
     return serf_bucket_peek(ctx->wrapped, data, len);
 }
 
