diff --git a/library/argstream/argstream.h b/library/argstream/argstream.h index aa5bdaa49..cdc8e4600 100644 --- a/library/argstream/argstream.h +++ b/library/argstream/argstream.h @@ -635,15 +635,17 @@ namespace // The option and its associated value are removed, the subtle thing // is that someother options might have this associated value too, // which we must invalidate. - s.values_.erase(iter->second); - for (std::map::iterator - jter = s.options_.begin();jter != s.options_.end();++jter) - { - if (jter->second == iter->second) - { - jter->second = s.values_.end(); - } - } + s.values_.erase(iter->second); + + // FIXME this loop seems to crash if a std::string is used as the value + //for (std::map::iterator + // jter = s.options_.begin();jter != s.options_.end();++jter) + //{ + // if (jter->second == iter->second) + // { + // jter->second = s.values_.end(); + // } + //} s.options_.erase(iter); } else