diff --git a/proof/proofplayer/src/TFileMerger.cxx b/proof/proofplayer/src/TFileMerger.cxx index 0f21992486ab82831fae0e311371a29ab8850a67..1ea1dabd2c0553e60679f0b4fe10d4720320b8da 100644 --- a/proof/proofplayer/src/TFileMerger.cxx +++ b/proof/proofplayer/src/TFileMerger.cxx @@ -335,6 +335,10 @@ Bool_t TFileMerger::MergeRecursive(TDirectory *target, TList *sourcelist) TKey *key2 = (TKey*)gDirectory->GetListOfKeys()->FindObject(key->GetName()); if (key2) { TObject *hobj = key2->ReadObj(); + // Set ownership for collections + if (hobj->InheritsFrom(TCollection::Class())) { + ((TCollection*)hobj)->SetOwner(); + } hobj->ResetBit(kMustCleanup); listH.Add(hobj); Int_t error = 0; @@ -395,6 +399,7 @@ Bool_t TFileMerger::MergeRecursive(TDirectory *target, TList *sourcelist) } } else if (obj->IsA()->InheritsFrom( "TCollection" )) { obj->Write( key->GetName(), TObject::kSingleKey ); + ((TCollection*)obj)->SetOwner(); } else { obj->Write( key->GetName() ); }