int
DisturbanceStorage::
applyAllConnectionChangesToMultiConnection(const fromToNode_t& multi)
{
   int nbrChanges = 0;
   
   pair<nodesInMultiMap_t::iterator, nodesInMultiMap_t::iterator>
      range = m_nodesInMulti.equal_range(multi);

   // Copy the old connectiondata.
   RoutingNode* fromNode   = m_map->getNodeFromTrueNodeNumber(multi.first);
   RoutingNode* toNode     = m_map->getNodeFromTrueNodeNumber(multi.second);
   RoutingConnection* conn = fromNode->getConnection(toNode, true);
   
   RoutingConnectionData oldData( *conn->getData() );
   
   for( nodesInMultiMap_t::iterator it = range.first;
        it != range.second;
        ++it ) {
      // Find change
      changedNodes_t::const_iterator change = m_changedNodes.find(it->second);
      
      // Apply change
      change->second.applyDiff(m_map, fromNode, conn, &(it->second));
      
      ++nbrChanges;
   }

   if ( nbrChanges != 0 ) {
      // Save the old connection data
      RoutingMapConnChanges diff(fromNode, toNode, oldData,
                                 *conn->getData(), true);
      m_changedNodes.insert(
         make_pair(
            fromToNode_t(fromNode->getItemID(),
                         toNode->getItemID()),
            diff
            ));
   }

   mc2dbg << "[DS]: " << nbrChanges << " applied" << endl;
   
   return nbrChanges;
}