diff --git a/src/model.js b/src/model.js index d9b961753b..39b34f1605 100644 --- a/src/model.js +++ b/src/model.js @@ -2165,12 +2165,17 @@ } } if (mode == 'list ids') { + var records_to_remove = []; for (var i = 0, len = group.length; i < len; i++) { var old_record = group[i]; if (!~value.indexOf(old_record.id)) { - group.remove(old_record, true, true, false, false); + records_to_remove.push(old_record); } } + for (i = 0, len = records_to_remove.length; i < len; i++) { + var record_to_remove = records_to_remove[i]; + group.remove(record_to_remove, true, true, false, false); + } group.load(value, modified || default_); } else { value.forEach(function(vals) {