Index: lemon/max_matching.h
===================================================================
--- lemon/max_matching.h	(revision 606)
+++ lemon/max_matching.h	(revision 628)
@@ -283,5 +283,5 @@
 
         while (base != nca) {
-          _ear->set(node, arc);
+          (*_ear)[node] = arc;
 
           Node n = node;
@@ -290,5 +290,5 @@
             Arc a = (*_ear)[n];
             n = _graph.target(a);
-            _ear->set(n, _graph.oppositeArc(a));
+            (*_ear)[n] = _graph.oppositeArc(a);
           }
           node = _graph.target((*_matching)[base]);
@@ -296,5 +296,5 @@
           _tree_set->erase(node);
           _blossom_set->insert(node, _blossom_set->find(base));
-          _status->set(node, EVEN);
+          (*_status)[node] = EVEN;
           _node_queue[_last++] = node;
           arc = _graph.oppositeArc((*_ear)[node]);
@@ -305,5 +305,5 @@
       }
 
-      _blossom_rep->set(_blossom_set->find(nca), nca);
+      (*_blossom_rep)[_blossom_set->find(nca)] = nca;
 
       {
@@ -314,5 +314,5 @@
 
         while (base != nca) {
-          _ear->set(node, arc);
+          (*_ear)[node] = arc;
 
           Node n = node;
@@ -321,5 +321,5 @@
             Arc a = (*_ear)[n];
             n = _graph.target(a);
-            _ear->set(n, _graph.oppositeArc(a));
+            (*_ear)[n] = _graph.oppositeArc(a);
           }
           node = _graph.target((*_matching)[base]);
@@ -327,5 +327,5 @@
           _tree_set->erase(node);
           _blossom_set->insert(node, _blossom_set->find(base));
-          _status->set(node, EVEN);
+          (*_status)[node] = EVEN;
           _node_queue[_last++] = node;
           arc = _graph.oppositeArc((*_ear)[node]);
@@ -336,5 +336,5 @@
       }
 
-      _blossom_rep->set(_blossom_set->find(nca), nca);
+      (*_blossom_rep)[_blossom_set->find(nca)] = nca;
     }
 
@@ -345,9 +345,9 @@
       Node odd = _graph.target(a);
 
-      _ear->set(odd, _graph.oppositeArc(a));
+      (*_ear)[odd] = _graph.oppositeArc(a);
       Node even = _graph.target((*_matching)[odd]);
-      _blossom_rep->set(_blossom_set->insert(even), even);
-      _status->set(odd, ODD);
-      _status->set(even, EVEN);
+      (*_blossom_rep)[_blossom_set->insert(even)] = even;
+      (*_status)[odd] = ODD;
+      (*_status)[even] = EVEN;
       int tree = _tree_set->find((*_blossom_rep)[_blossom_set->find(base)]);
       _tree_set->insert(odd, tree);
@@ -363,9 +363,9 @@
       int tree = _tree_set->find((*_blossom_rep)[_blossom_set->find(even)]);
 
-      _matching->set(odd, _graph.oppositeArc(a));
-      _status->set(odd, MATCHED);
+      (*_matching)[odd] = _graph.oppositeArc(a);
+      (*_status)[odd] = MATCHED;
 
       Arc arc = (*_matching)[even];
-      _matching->set(even, a);
+      (*_matching)[even] = a;
 
       while (arc != INVALID) {
@@ -373,7 +373,7 @@
         arc = (*_ear)[odd];
         even = _graph.target(arc);
-        _matching->set(odd, arc);
+        (*_matching)[odd] = arc;
         arc = (*_matching)[even];
-        _matching->set(even, _graph.oppositeArc((*_matching)[odd]));
+        (*_matching)[even] = _graph.oppositeArc((*_matching)[odd]);
       }
 
@@ -381,10 +381,10 @@
            it != INVALID; ++it) {
         if ((*_status)[it] == ODD) {
-          _status->set(it, MATCHED);
+          (*_status)[it] = MATCHED;
         } else {
           int blossom = _blossom_set->find(it);
           for (typename BlossomSet::ItemIt jt(*_blossom_set, blossom);
                jt != INVALID; ++jt) {
-            _status->set(jt, MATCHED);
+            (*_status)[jt] = MATCHED;
           }
           _blossom_set->eraseClass(blossom);
@@ -428,6 +428,6 @@
       createStructures();
       for(NodeIt n(_graph); n != INVALID; ++n) {
-        _matching->set(n, INVALID);
-        _status->set(n, UNMATCHED);
+        (*_matching)[n] = INVALID;
+        (*_status)[n] = UNMATCHED;
       }
     }
@@ -439,6 +439,6 @@
       createStructures();
       for (NodeIt n(_graph); n != INVALID; ++n) {
-        _matching->set(n, INVALID);
-        _status->set(n, UNMATCHED);
+        (*_matching)[n] = INVALID;
+        (*_status)[n] = UNMATCHED;
       }
       for (NodeIt n(_graph); n != INVALID; ++n) {
@@ -447,8 +447,8 @@
             Node v = _graph.target(a);
             if ((*_matching)[v] == INVALID && v != n) {
-              _matching->set(n, a);
-              _status->set(n, MATCHED);
-              _matching->set(v, _graph.oppositeArc(a));
-              _status->set(v, MATCHED);
+              (*_matching)[n] = a;
+              (*_status)[n] = MATCHED;
+              (*_matching)[v] = _graph.oppositeArc(a);
+              (*_status)[v] = MATCHED;
               break;
             }
@@ -470,6 +470,6 @@
 
       for (NodeIt n(_graph); n != INVALID; ++n) {
-        _matching->set(n, INVALID);
-        _status->set(n, UNMATCHED);
+        (*_matching)[n] = INVALID;
+        (*_status)[n] = UNMATCHED;
       }
       for(EdgeIt e(_graph); e!=INVALID; ++e) {
@@ -478,11 +478,11 @@
           Node u = _graph.u(e);
           if ((*_matching)[u] != INVALID) return false;
-          _matching->set(u, _graph.direct(e, true));
-          _status->set(u, MATCHED);
+          (*_matching)[u] = _graph.direct(e, true);
+          (*_status)[u] = MATCHED;
 
           Node v = _graph.v(e);
           if ((*_matching)[v] != INVALID) return false;
-          _matching->set(v, _graph.direct(e, false));
-          _status->set(v, MATCHED);
+          (*_matching)[v] = _graph.direct(e, false);
+          (*_status)[v] = MATCHED;
         }
       }
@@ -498,5 +498,5 @@
           (*_blossom_rep)[_blossom_set->insert(n)] = n;
           _tree_set->insert(n);
-          _status->set(n, EVEN);
+          (*_status)[n] = EVEN;
           processSparse(n);
         }
@@ -513,5 +513,5 @@
           (*_blossom_rep)[_blossom_set->insert(n)] = n;
           _tree_set->insert(n);
-          _status->set(n, EVEN);
+          (*_status)[n] = EVEN;
           processDense(n);
         }
@@ -1549,7 +1549,7 @@
         Value pot = (*_node_data)[bi].pot;
 
-        _matching->set(base, matching);
+        (*_matching)[base] = matching;
         _blossom_node_list.push_back(base);
-        _node_potential->set(base, pot);
+        (*_node_potential)[base] = pot;
       } else {
 
@@ -1645,15 +1645,15 @@
 
       for (ArcIt e(_graph); e != INVALID; ++e) {
-        _node_heap_index->set(e, BinHeap<Value, IntArcMap>::PRE_HEAP);
+        (*_node_heap_index)[e] = BinHeap<Value, IntArcMap>::PRE_HEAP;
       }
       for (NodeIt n(_graph); n != INVALID; ++n) {
-        _delta1_index->set(n, _delta1->PRE_HEAP);
+        (*_delta1_index)[n] = _delta1->PRE_HEAP;
       }
       for (EdgeIt e(_graph); e != INVALID; ++e) {
-        _delta3_index->set(e, _delta3->PRE_HEAP);
+        (*_delta3_index)[e] = _delta3->PRE_HEAP;
       }
       for (int i = 0; i < _blossom_num; ++i) {
-        _delta2_index->set(i, _delta2->PRE_HEAP);
-        _delta4_index->set(i, _delta4->PRE_HEAP);
+        (*_delta2_index)[i] = _delta2->PRE_HEAP;
+        (*_delta4_index)[i] = _delta4->PRE_HEAP;
       }
 
@@ -1667,5 +1667,5 @@
           }
         }
-        _node_index->set(n, index);
+        (*_node_index)[n] = index;
         (*_node_data)[index].pot = max;
         _delta1->push(n, max);
@@ -2742,7 +2742,7 @@
         Value pot = (*_node_data)[bi].pot;
 
-        _matching->set(base, matching);
+        (*_matching)[base] = matching;
         _blossom_node_list.push_back(base);
-        _node_potential->set(base, pot);
+        (*_node_potential)[base] = pot;
       } else {
 
@@ -2832,12 +2832,12 @@
 
       for (ArcIt e(_graph); e != INVALID; ++e) {
-        _node_heap_index->set(e, BinHeap<Value, IntArcMap>::PRE_HEAP);
+        (*_node_heap_index)[e] = BinHeap<Value, IntArcMap>::PRE_HEAP;
       }
       for (EdgeIt e(_graph); e != INVALID; ++e) {
-        _delta3_index->set(e, _delta3->PRE_HEAP);
+        (*_delta3_index)[e] = _delta3->PRE_HEAP;
       }
       for (int i = 0; i < _blossom_num; ++i) {
-        _delta2_index->set(i, _delta2->PRE_HEAP);
-        _delta4_index->set(i, _delta4->PRE_HEAP);
+        (*_delta2_index)[i] = _delta2->PRE_HEAP;
+        (*_delta4_index)[i] = _delta4->PRE_HEAP;
       }
 
@@ -2851,5 +2851,5 @@
           }
         }
-        _node_index->set(n, index);
+        (*_node_index)[n] = index;
         (*_node_data)[index].pot = max;
         int blossom =
