diff --git a/src/kits/interface/Picture.cpp b/src/kits/interface/Picture.cpp index 5a29d6f4c6..834f9f07b3 100644 --- a/src/kits/interface/Picture.cpp +++ b/src/kits/interface/Picture.cpp @@ -488,13 +488,13 @@ BPicture::usurp(BPicture *lameDuck) link.StartMessage(AS_DELETE_PICTURE); link.Attach(token); link.Flush(); + + delete extent; + + // Reinitializes the BPicture + init_data(); } - delete extent; - - // Reinitializes the BPicture - init_data(); - // Do the usurping usurped = lameDuck; } diff --git a/src/kits/interface/View.cpp b/src/kits/interface/View.cpp index de14811ea2..60a6107d67 100644 --- a/src/kits/interface/View.cpp +++ b/src/kits/interface/View.cpp @@ -3114,8 +3114,9 @@ BView::AppendToPicture(BPicture *picture) if (token == -1) { BeginPicture(picture); } else { - picture->usurped = cpicture; picture->set_token(-1); + picture->usurp(cpicture); + cpicture = picture; fOwner->fLink->StartMessage(AS_LAYER_APPEND_TO_PICTURE); fOwner->fLink->Attach(token); }