diff --git a/tree/tree/src/TBranchElement.cxx b/tree/tree/src/TBranchElement.cxx
index 8485c8da98109b73021f0c5cff439d96f87660a4..db8d341baf466c3c35a896a60c318b971fbecec0 100644
--- a/tree/tree/src/TBranchElement.cxx
+++ b/tree/tree/src/TBranchElement.cxx
@@ -1151,8 +1151,7 @@ void TBranchElement::FillLeaves(TBuffer& b)
             Error("FillLeaves", "Cannot get streamer info for branch '%s' class '%s'", GetName(), cl->GetName());
             return;
          }
-         // FIXME: What if GetParent() returns a zero pointer here?
-         si->ForceWriteInfo((TFile *) b.GetParent());
+         b.ForceWriteInfo(si,kFALSE);
          Int_t* nptr = (Int_t*) fAddress;
          b << *nptr;
       } else {
@@ -3739,10 +3738,7 @@ void TBranchElement::Streamer(TBuffer& R__b)
       //  to be written to our output file.
       //
       {
-         TStreamerInfo* si = GetInfo();
-         if (si) {
-            si->ForceWriteInfo((TFile*) R__b.GetParent(), kTRUE);
-         }
+         R__b.ForceWriteInfo(GetInfo(), kTRUE);
       }
       //
       //  If we are a clones array master branch, or an
@@ -3760,10 +3756,7 @@ void TBranchElement::Streamer(TBuffer& R__b)
          if (nm && strlen(nm)) {
             TClass* cl = TClass::GetClass(nm);
             if (cl) {
-               TVirtualStreamerInfo* si = cl->GetStreamerInfo();
-               if (si) {
-                  si->ForceWriteInfo((TFile*) R__b.GetParent(), kTRUE);
-               }
+               R__b.ForceWriteInfo(cl->GetStreamerInfo(), kTRUE);
             }
          }
       }
@@ -3777,10 +3770,7 @@ void TBranchElement::Streamer(TBuffer& R__b)
          if (cp) {
             TClass* cl = cp->GetValueClass();
             if (cl) {
-               TVirtualStreamerInfo* si = cl->GetStreamerInfo();
-               if (si) {
-                  si->ForceWriteInfo((TFile*) R__b.GetParent(), kTRUE);
-               }
+               R__b.ForceWriteInfo(cl->GetStreamerInfo(), kTRUE);
             }
          }
       }
diff --git a/tree/tree/src/TBranchObject.cxx b/tree/tree/src/TBranchObject.cxx
index d6be2cd0c795ee0bb31c8c363b1ce81ceab61f33..836114772e475aed3166d20fb0873a6b985039d5 100644
--- a/tree/tree/src/TBranchObject.cxx
+++ b/tree/tree/src/TBranchObject.cxx
@@ -535,7 +535,7 @@ void TBranchObject::Streamer(TBuffer& R__b)
 
       // make sure that all TStreamerInfo objects referenced by
       // this class are written to the file
-      TClass::GetClass(fClassName.Data())->GetStreamerInfo()->ForceWriteInfo((TFile *)R__b.GetParent(), kTRUE);
+      R__b.ForceWriteInfo(TClass::GetClass(fClassName.Data())->GetStreamerInfo(), kTRUE);
 
       // if branch is in a separate file save this branch
       // as an independent key