diff --git a/lib/buffered.js b/lib/buffered.js
index <HASH>..<HASH> 100644
--- a/lib/buffered.js
+++ b/lib/buffered.js
@@ -37,7 +37,10 @@ BufferedStream.prototype.pipe = function (dest, options) {
     delete self.chunks;
 
     if (self.ended) {
+      self.readable = false;
+      self.writable = false;
       self.emit('end');
+      self.emit('close');
     }
   });
 
@@ -70,7 +73,10 @@ BufferedStream.prototype.end = function (data) {
     // If there are no chunks left (we're not buffering anymore) close the
     // stream now...
     //
-    return this.emit('end');
+    this.readable = false;
+    this.writable = false;
+    this.emit('end');
+    return this.emit('close');
   }
   //
   // ...otherwise delay `end` event until we finish piping.
[api] Make compatible with stream specification