Hi guys! Welcome Bryan. As you have seen, I managed to put with the update code in place. This is the 'main' feature, we're not counting here: BWindow::DisableUpdates() BWindow::EnableUpdates() [these to instruct app_server to render into a bitmap then blit(+clip) that onto screen] BWindow::BeginViewTransaction(); BWindow::EndViewTransaction(); [these 2 don't have very much to to with the update mechanism, (on the client side) they record all drawings into a BPicture, and when finished instruct app_server to draw that picture.] [If you ask me, I don't know how this feature is of any use, Disable/EnableUpdates() assembly being preferred. MHO.] I'm getting into stories here... :-)) What I wanted to say is, from now on the clipping region for ALL primitive drawings is: Layer::ClippingRegion(). Doesn't matter if we're in an update process or just drawing normally, I've taken care of that. Now, what is the "standard" method of passing drawing_state? You would say, DrawData class. OK, but this one has the 'clipReg' member which in case of LayerData holds the user clipping region only. What do you say if we let that to be used for DrawData's purposes (general clipping region), and add a new LayerData member for holding user's clipping region? 'userClipReg'? In this case clipReg = Layer::ClippingRegion() OK? Adi.