Just thought I'd point out that the /AH flag for QB doesn't actually give arrays more space, it simply allows them to cross segment boundaries, reducing the granularity of memory. Arrays still go into data memory, which is 2 segments distinct from code memory's single segment per module. DATA statements are effectively code, and as such, they also use up code memory, so getting rid of DATA statements was a good move. The only other way to reduce code size is simply to optimize it for size, which is an art, more than a science. The most important thing is to remember that your design choices are not completely set in stone, and that you can rethink the way you're doing certain things and recode them if necessary. If there is a way that you can use the same code in more than one place, or even eliminate code entirely, then by all means, do so. [sig][/sig]