http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46424
--- Comment #1 from Brad <Shadow7789 at gmail dot com> 2010-11-11 02:37:56 UTC --- I forgot to mention one thing. The code that seems to acting suspisciously is this bit: toDo.erase( *out ); //Putting this code here instead of the end breaks this code. std::map<PublicKey, std::set<PublicKey> >::const_iterator giter = graph.find( *out ); std::set<PublicKey>::const_iterator con = giter->second.begin(); std::set<PublicKey>::const_iterator end = giter->second.end(); For some reason, when I look at "con" with gdb, it has a null pointer. Which causes the subsequent bit of code to crash. "end" has a value, but I haven't tried to figure out if it is pointing to something or not.