Colin is correct. If you use any GDI or GDI+ objects, especially when doing you own custom drawing, and don't properly release them by calling Dispose when your done with them, the unmanaged underlying system handles don't get released and are eventually exhausted, causing your OutOfMemory Exception. There are other things that will cause this too, but not properly Disposing the objects you're using, no matter what they are, will result in exhausting one or more of the system handle pools. If you want a quick check of this, open TaskManager, click on its Processes tab, then go to the view menu and pick Select Columns. Turn on Handles, Threads, USER Objects, and GDI Objects. Click OK, then go to the list and file your app. Watch it run for a little while. If any of these counters just keeps rising the longer you use your app, this gives you a hint of where the problem lies. Handle counts usually don't rise above 1,000 in most cases. I have seen examples of piss-poor programming (in commercial software, no less!) where the Handle count grew above 100,000 handles in use! This is a REALLY BIG clue there's leaky code somewhere in that app... RageInTheMachine9532 "...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome