You missed a functions which get an entry of a module by a given key without changing the current key of the module. You use silly "savekey" mechanism every time. It should be wrapped inside a function like const char *SWModule::getRawEntry(SWKey *); -- Victor Porton (porton@narod.ru)