diff --git a/lib/waterline/query/dql/update.js b/lib/waterline/query/dql/update.js
index <HASH>..<HASH> 100644
--- a/lib/waterline/query/dql/update.js
+++ b/lib/waterline/query/dql/update.js
@@ -98,7 +98,7 @@ function prepareArguments(criteria, values) {
 function createBelongsTo(valuesObject, cb) {
   var self = this;
 
-  async.each(valuesObject.associations.models, function(item, next) {
+  async.each(valuesObject.associations.models.slice(0), function(item, next) {
 
     // Check if value is an object. If not don't try and create it.
     if(!_.isPlainObject(valuesObject.values[item])) return next();
Fix callback being called multiple times when updating model with associations