diff --git a/app/assets/javascripts/app/models/stream.js b/app/assets/javascripts/app/models/stream.js
index f417016fc692b32470831b672c5d7c13d8a1856c..4cf5ff737a94bb67a5ccc7350a19dad9cdb4b7f6 100644
--- a/app/assets/javascripts/app/models/stream.js
+++ b/app/assets/javascripts/app/models/stream.js
@@ -15,13 +15,18 @@ app.models.Stream = Backbone.Collection.extend({
     return _.any(this.items.models) ? this.timeFilteredPath() : this.basePath()
   },
 
+  _fetchOpts: function(opts) {
+    var defaultOpts = {
+      remove: false  // tell backbone to keep existing items in the collection
+    };
+    return _.extend({}, defaultOpts, opts);
+  },
+
   fetch: function() {
     if( this.isFetching() ) return false;
     var url = this.url();
-    this.deferred = this.items.fetch({
-        remove : false,
-        url : url
-    }).done(_.bind(this.triggerFetchedEvents, this))
+    this.deferred = this.items.fetch(this._fetchOpts({url : url}))
+      .done(_.bind(this.triggerFetchedEvents, this));
   },
 
   isFetching : function() {
diff --git a/app/assets/javascripts/app/models/stream_aspects.js b/app/assets/javascripts/app/models/stream_aspects.js
index f8536c65db7b7d53c799a3ca5e24de76072e3598..4dc97899e730fcbd595e450d4f9e9f10e2947e6f 100644
--- a/app/assets/javascripts/app/models/stream_aspects.js
+++ b/app/assets/javascripts/app/models/stream_aspects.js
@@ -18,10 +18,7 @@ app.models.StreamAspects = app.models.Stream.extend({
     if(this.isFetching()){ return false }
     var url = this.url();
     var ids = this.aspects_ids;
-    this.deferred = this.items.fetch({
-        add : true,
-        url : url,
-        data : { 'a_ids': ids }
-    }).done(_.bind(this.triggerFetchedEvents, this))
+    this.deferred = this.items.fetch(this._fetchOpts({url : url, data : { 'a_ids': ids }}))
+      .done(_.bind(this.triggerFetchedEvents, this));
   }
 });
diff --git a/spec/javascripts/app/models/stream_aspects_spec.js b/spec/javascripts/app/models/stream_aspects_spec.js
new file mode 100644
index 0000000000000000000000000000000000000000..f6d99195ccc6550af520386bf5fa4ef34c9caad9
--- /dev/null
+++ b/spec/javascripts/app/models/stream_aspects_spec.js
@@ -0,0 +1,28 @@
+describe("app.models.StreamAspects", function() {
+  describe("#fetch", function(){
+    var fetch,
+        stream;
+
+    beforeEach(function(){
+      fetch = new $.Deferred();
+      stream = new app.models.StreamAspects([], {aspects_ids: [1,2]});
+      spyOn(stream.items, "fetch").andCallFake(function(options){
+        stream.items.set([{name: 'a'}, {name: 'b'}, {name: 'c'}], options);
+        fetch.resolve();
+        return fetch;
+      });
+    });
+
+    it("fetches some posts", function(){
+      stream.fetch();
+      expect(stream.items.length).toEqual(3);
+    });
+
+    it("fetches more posts", function(){
+      stream.fetch();
+      expect(stream.items.length).toEqual(3);
+      stream.fetch();
+      expect(stream.items.length).toEqual(6);
+    });
+  });
+});