it seems the author has not considered large files. eg. FileSize returns: static_cast<int>(f.tellg() - begin_pos); ie. an int i think you'll need to do quite a few fixes for this, and i'm not even sure you can make ifstream use large files... and this comment: /** * load entire file into buffer */ on the next function implies that you are going to need >4G RAM anyway... (which, i suppose, you may have) sorry i can't be of more help -- got to go to lunch. jack