> Right, but Dispose will never be called if the object is in the hash ;-) Dispose is called by users of IDisposable, manually. So I do things like: Pixbuf p = new Pixbuf ("a.png"); p.RenderToDrawable (...); p.Dispose (); You are thinking about ~Pixbuf () which is indeed never called if you are not stored in a WeakReference Miguel