diff --git a/framework/lib/tools.js b/framework/lib/tools.js
index <HASH>..<HASH> 100644
--- a/framework/lib/tools.js
+++ b/framework/lib/tools.js
@@ -22,6 +22,9 @@ _.mixin({
       return _.deep_clone(item);
     });
 
+    //fix if obj is a function, not need to clone, it is ok to return it not to clone it .
+    if( _.isFunction(obj)) return obj;
+    
     if (!_.isObject(obj)) return obj;
 
     var result = {};
@@ -293,4 +296,4 @@ exports.to_object = function (obj, deep, current_deep) {
   else result = obj;
 
   return result;
-};
\ No newline at end of file
+};
fix deep_clone bug

fix deep_clone bug: if obj is a function, not need to clone, it is ok to return it not to clone it .