diff --git a/lib/eggs.js b/lib/eggs.js
index <HASH>..<HASH> 100644
--- a/lib/eggs.js
+++ b/lib/eggs.js
@@ -250,7 +250,7 @@ var factory = function(htmlString,options,ViewModel,callback){
     tree = select(selector)(virtualdom);
   }
   if (!tree || !tree.length) {
-    if(callback) callback(null,null);
+    if(callback) callback(null,htmlString);
     return eggs;
   } else if (tree.length > 1){
     var error = new Error('Eggs selectors must only match one node.');
diff --git a/test/view-engine/index.js b/test/view-engine/index.js
index <HASH>..<HASH> 100644
--- a/test/view-engine/index.js
+++ b/test/view-engine/index.js
@@ -17,6 +17,9 @@ describe('eggs view engine',function(){
     routes.push({
       selector : '#index',
       viewmodel : require('../fixtures/viewmodels/index')
+    },{
+      selector : '#fake',
+      viewmodel : function(){}
     });
 
     app = express();
fix a bug where unmatched routes caused view engine to barf