Index: extended_type_info.cpp =================================================================== --- extended_type_info.cpp (revision 48444) +++ extended_type_info.cpp (working copy) @@ -93,10 +93,11 @@ // remove entry in map which corresponds to this type do{ if(this == *start){ - x.erase(start); - break; + x.erase(start++); + } else { + ++start; } - }while(++start != end); + }while(start != end); m_key = NULL; } Index: extended_type_info_typeid.cpp =================================================================== --- extended_type_info_typeid.cpp (revision 48444) +++ extended_type_info_typeid.cpp (working copy) @@ -90,10 +90,11 @@ // remove entry in map which corresponds to this type do{ if(this == *start){ - x.erase(start); - break; - } - }while(++start != end); + x.erase(start++); + } else { + ++start; + } + }while(start != end); m_ti = NULL; }