diff --git a/src/NodeRun.js b/src/NodeRun.js
index <HASH>..<HASH> 100644
--- a/src/NodeRun.js
+++ b/src/NodeRun.js
@@ -89,9 +89,21 @@ function addExtension() {
             
             // Only translate as a module if the source module is requesting 
             // via import syntax
-            var m = !!module.parent.__es6;
+            if (module.parent.__es6) {
             
-            text = translate(text, { wrap: m, module: m });
+                text = translate(text, { wrap: true, module: true });
+                
+            } else {
+            
+                // Node modules are wrapped in function expressions, so return statements
+                // are allowed
+                text = "(function() {" + text + "})";
+                
+                text = translate(text, { wrap: false, module: false });
+                
+                // Remove function wrapper
+                text = text.slice(13, -2);
+            }
         
         } catch (e) {
         
diff --git a/test/functional/import-export-legacy.js b/test/functional/import-export-legacy.js
index <HASH>..<HASH> 100644
--- a/test/functional/import-export-legacy.js
+++ b/test/functional/import-export-legacy.js
@@ -1 +1,4 @@
-exports.legacyRelative = "legacy-relative";
\ No newline at end of file
+exports.legacyRelative = "legacy-relative";
+
+// Node modules are wrapped in function expression, so return statements are allowed
+return;
Wrap old-style modules in a function expression before translating, so that return statements are allowed.