diff --git a/lib/_stream_duplex.js b/lib/_stream_duplex.js
index c5a741c..a2e0d8e 100644
--- a/lib/_stream_duplex.js
+++ b/lib/_stream_duplex.js
@@ -26,8 +26,8 @@
 
 module.exports = Duplex;
 var util = require('util');
-var Readable = require('_stream_readable');
-var Writable = require('_stream_writable');
+var Readable = require('./_stream_readable');
+var Writable = require('./_stream_writable');
 
 util.inherits(Duplex, Readable);
 
diff --git a/lib/_stream_passthrough.js b/lib/_stream_passthrough.js
index a5e9864..330c247 100644
--- a/lib/_stream_passthrough.js
+++ b/lib/_stream_passthrough.js
@@ -25,7 +25,7 @@
 
 module.exports = PassThrough;
 
-var Transform = require('_stream_transform');
+var Transform = require('./_stream_transform');
 var util = require('util');
 util.inherits(PassThrough, Transform);
 
diff --git a/lib/_stream_readable.js b/lib/_stream_readable.js
index 2259d2e..e6681ee 100644
--- a/lib/_stream_readable.js
+++ b/lib/_stream_readable.js
@@ -23,6 +23,9 @@ module.exports = Readable;
 Readable.ReadableState = ReadableState;
 
 var EE = require('events').EventEmitter;
+if (!EE.listenerCount) EE.listenerCount = function(emitter, type) {
+  return emitter.listeners(type).length;
+};
 var Stream = require('stream');
 var util = require('util');
 var StringDecoder;
diff --git a/lib/_stream_transform.js b/lib/_stream_transform.js
index e925b4b..f08b05e 100644
--- a/lib/_stream_transform.js
+++ b/lib/_stream_transform.js
@@ -64,7 +64,7 @@
 
 module.exports = Transform;
 
-var Duplex = require('_stream_duplex');
+var Duplex = require('./_stream_duplex');
 var util = require('util');
 util.inherits(Transform, Duplex);
 
diff --git a/lib/_stream_writable.js b/lib/_stream_writable.js
index a26f711..56ca47d 100644
--- a/lib/_stream_writable.js
+++ b/lib/_stream_writable.js
@@ -109,7 +109,7 @@ function WritableState(options, stream) {
 function Writable(options) {
   // Writable ctor is applied to Duplexes, though they're not
   // instanceof Writable, they're instanceof Readable.
-  if (!(this instanceof Writable) && !(this instanceof Stream.Duplex))
+  if (!(this instanceof Writable) && !(this instanceof require('./_stream_duplex')))
     return new Writable(options);
 
   this._writableState = new WritableState(options, this);
