diff -r 9312d6c89d02 -r a80381c43760 lemon/preflow.h --- a/lemon/preflow.h Mon Jan 10 09:34:50 2011 +0100 +++ b/lemon/preflow.h Mon Feb 28 10:19:34 2011 +0100 @@ -543,9 +543,6 @@ if ((*_level)[u] == _level->maxLevel()) continue; _flow->set(e, (*_capacity)[e]); (*_excess)[u] += rem; - if (u != _target && !_level->active(u)) { - _level->activate(u); - } } } for (InArcIt e(_graph, _source); e != INVALID; ++e) { @@ -555,11 +552,12 @@ if ((*_level)[v] == _level->maxLevel()) continue; _flow->set(e, 0); (*_excess)[v] += rem; - if (v != _target && !_level->active(v)) { - _level->activate(v); - } } } + for (NodeIt n(_graph); n != INVALID; ++n) + if(n!=_source && n!=_target && _tolerance.positive((*_excess)[n])) + _level->activate(n); + return true; }