diff -r 699c7eac2c6d -r 8b2b9e61d8ce lemon/core.h --- a/lemon/core.h Wed Jan 11 22:21:07 2012 +0100 +++ b/lemon/core.h Wed Jan 11 22:43:50 2012 +0100 @@ -1209,11 +1209,10 @@ typedef typename To::Node Value; Value operator[](const Key& key) const { - std::pair red_blue_pair = _from.asRedBlueNode(key); - if (red_blue_pair.first != INVALID) { - return _red_node_ref[red_blue_pair.first]; + if (_from.red(key)) { + return _red_node_ref[_from.asRedNodeUnsafe(key)]; } else { - return _blue_node_ref[red_blue_pair.second]; + return _blue_node_ref[_from.asBlueNodeUnsafe(key)]; } }