diff --git a/lib/modules/core/index.js b/lib/modules/core/index.js
index <HASH>..<HASH> 100644
--- a/lib/modules/core/index.js
+++ b/lib/modules/core/index.js
@@ -61,6 +61,10 @@ Archiver.prototype._normalizeSource = function(source) {
   return source;
 };
 
+Archiver.prototype._onModuleError = function(err) {
+  this.emit('error', err);
+};
+
 Archiver.prototype._onQueueEnd = function() {
   if (typeof this._module.finalize === 'function') {
     this._module.finalize();
@@ -93,6 +97,7 @@ Archiver.prototype._onQueueError = function(err) {
 };
 
 Archiver.prototype._pipeModuleOutput = function() {
+  this._module.on('error', this._onModuleError.bind(this));
   this._module.pipe(this);
 
   this._moduleOutputPiped = true;
core: catch module errors and bubble them up the chain.