diff --git a/js/sourceadapters.js b/js/sourceadapters.js
index <HASH>..<HASH> 100644
--- a/js/sourceadapters.js
+++ b/js/sourceadapters.js
@@ -19,6 +19,7 @@ if (typeof(require) !== 'undefined') {
     var utils = require('./utils')
     var Awaited = utils.Awaited;
     var arrayIndexOf = utils.arrayIndexOf;
+    var shallowCopy = utils.shallowCopy;
 
     var das = require('./das');
     var DASStylesheet = das.DASStylesheet;
@@ -1412,6 +1413,7 @@ MappedFeatureSource.prototype.fetch = function(chr, min, max, scale, types, pool
                                      mappedFeatures.push(f);
                                 }
                             } else {
+                                f = shallowCopy(f);
                                 f.segment = mmin.seq;
                                 f.min = mmin.pos;
                                 f.max = mmax.pos;
Copy features before mapping, to avoid bad interactions with memstore.