Index: _source/core/tools.js
===================================================================
--- _source/core/tools.js	(revision 3176)
+++ _source/core/tools.js	(working copy)
@@ -62,7 +62,10 @@
 		 */
 		clone : function( object )
 		{
-			var clone = {};
+			if( object === null || typeof( object ) != 'object') 
+				return object;
+				
+			var clone = new object.constructor();
 
 			for ( var propertyName in object )
 			{
@@ -67,11 +70,7 @@
 			for ( var propertyName in object )
 			{
 				var property = object[ propertyName ];
-
-				if ( typeof property == 'object' )
-					property = this.clone( property );
-
-				clone[ propertyName ] = property;
+				clone[ propertyName ] = this.clone( property );
 			}
 
 			return clone;
