Must be a simple newbie thing, but I have found that: drawer.New1("form1",False) drawer.DrawImage1(imagelist1.Item(0),rectsrc.Value,rectdst.Value,False) works but drawer.New2(image1,B4PObject(5)) drawer.DrawImage1(imagelist1.Item(0),rectsrc.Value,rectdst.Value,False) does not. The second version gives an error "variable main.image1 was not assigned any value." if I put bmp.New2(100,100) image1.Image = bmp.Value before it, it does work. I don't understand that. Image1 is a control on the form, it's *there*, just like the form, so why does it have to be assigned a value? The need for image1.image = bmp.value seems to imply that Image1 is not an 'image' in it's own right, it is just a frame that can hold images. Am I missing something or not understanding the situation?