Hello, I think this task is harder than I might expected. I have managed to compile the code in the last email, but there are problems with the assignment operators for the const iterator. Also, in order to compile it I needed to use std::remove_const. All this compile errors appear because of the following typedefs : typedef trie_iterator<Key, Value> iterator; typedef typename std::add_const<Value>::type const_value; typedef trie_iterator<Key, const_value> const_iterator.l I can't find any other way to define the const_iterator. If you have any other idea please tell me. If you haven't I think we should let the iterator with 4 template parameters as it was and maybe change it later and do some other stuff until then. I'm stuck with this for a few days and I feel I could implement more and maybe come back to this later. Thank you, Cosmin