diff --git a/arangod/Aql/OptimizerRules.cpp b/arangod/Aql/OptimizerRules.cpp index 949c1e41cc..473b1683ac 100644 --- a/arangod/Aql/OptimizerRules.cpp +++ b/arangod/Aql/OptimizerRules.cpp @@ -2068,10 +2068,10 @@ int triagens::aql::useIndexesRule (Optimizer* opt, try { if (changes.size() > 0) { modified = true; - for (auto& change : changes) { - plan->registerNode(change.second); - plan->replaceNode(plan->getNodeById(change.first), change.second); - // TODO properly clear changes! + for (auto change = changes.cbegin(); change != changes.cend() ; ++change) { + plan->registerNode(change->second); + plan->replaceNode(plan->getNodeById(change->first), change->second); + changes.erase(change); } } }