diff --git a/lib/router/router.js b/lib/router/router.js
index <HASH>..<HASH> 100644
--- a/lib/router/router.js
+++ b/lib/router/router.js
@@ -215,9 +215,14 @@ function SingleAppRouter(appdir, runas, prefix, logDir, settings) {
     
     var self = this;
 
+    // Creates a /shallow/ copy of the settings object. So we can independently
+    // mutate top-level properties (but not nested objects) without affecting 
+    // the class variable.
+    var settings = _.clone(self.$settings);
+
     // Create a local appSpec that we can modify.
     var appSpec = new AppSpec(self.$appdir, self.$runas, self.$prefix, 
-      self.$logDir, self.$settings);
+      self.$logDir, settings);
 
     return Q.nfcall(fs.readdir, appSpec.appDir)
     .then(function(files){
Clone settings to avoid pass-by-ref problems.