diff --git a/apps/opencs/model/world/infocollection.cpp b/apps/opencs/model/world/infocollection.cpp index d326543fbf..8e7b6cf01b 100644 --- a/apps/opencs/model/world/infocollection.cpp +++ b/apps/opencs/model/world/infocollection.cpp @@ -38,7 +38,22 @@ void CSMWorld::InfoCollection::load (const Info& record, bool base) } if (index==-1) - index = getIdMap().size(); + { + std::pair range = getTopicRange (topic); + + if (range.first==range.second) + index = getIdMap().size(); + else + { + for (; range.first!=range.second; ++range.first) + { + if (range.first->second>index) + index = range.first->second; + } + + ++index; + } + } insertRecord (record2, index); }