diff --git a/backbone.js b/backbone.js
index <HASH>..<HASH> 100644
--- a/backbone.js
+++ b/backbone.js
@@ -914,7 +914,10 @@
 
     // Create a new collection with an identical list of models as this one.
     clone: function() {
-      return new this.constructor(this.models);
+      return new this.constructor(this.models, {
+        model: this.model,
+        comparator: this.comparator
+      });
     },
 
     // Private method to reset all internal state. Called when the collection
diff --git a/test/collection.js b/test/collection.js
index <HASH>..<HASH> 100644
--- a/test/collection.js
+++ b/test/collection.js
@@ -60,6 +60,17 @@
     strictEqual(collection.last().get('a'), 4);
   });
 
+  test("clone preserves model and comparator", 3, function() {
+    var Model = Backbone.Model.extend(),
+        comparator = function() {};
+
+    var col = (new Backbone.Collection([{id: 1}], {model: Model, comparator: comparator})).clone();
+    col.add({id: 2});
+    ok(col.at(0) instanceof Model);
+    ok(col.at(1) instanceof Model);
+    strictEqual(col.comparator, comparator);
+  });
+
   test("get", 6, function() {
     equal(col.get(0), d);
     equal(col.get(d.clone()), d);
pass along model and comparator to cloned collection. Fixes #<I>