diff --git a/proof/proofplayer/src/TEventIter.cxx b/proof/proofplayer/src/TEventIter.cxx
index a46821796f54da7a2d9145528c30c1bc7daad8d2..52d444e6ecfebef86f6be5c8eac67f5f1100f859 100644
--- a/proof/proofplayer/src/TEventIter.cxx
+++ b/proof/proofplayer/src/TEventIter.cxx
@@ -349,7 +349,7 @@ Long64_t TEventIterObj::GetNextEvent()
 
       // Position within this element. TODO: more efficient?
       fNextKey->Reset();
-      for(fElemCur = -1; fElemCur < fElemFirst-1 ; fElemCur++, fNextKey->Next()) { }
+      for(fElemCur = -1; fElemCur < fElemFirst-1 ; fElemCur++, fNextKey->Next());
    }
 
    --fElemNum;
@@ -622,28 +622,33 @@ Long64_t TEventIterTree::GetNextEvent()
       }
 
       SafeDelete(fElem);
-      if (fTree) {
-         fElem = fDSet->Next(fTree->GetEntries());
-      } else {
-         fElem = fDSet->Next();
-      }
+      while (!fElem) {
+         if (fTree) {
+            fElem = fDSet->Next(fTree->GetEntries());
+         } else {
+            fElem = fDSet->Next();
+         }
 
-      if ( fElem == 0 ) {
-         fNum = 0;
-         return -1;
-      }
+         if (!fElem) {
+            // End of processing
+            fNum = 0;
+            return -1;
+         }
 
-      TTree *newTree = GetTrees(fElem);
-      if (!newTree) {
-         // Error has been reported
-         fNum = 0;
-         return -1;
-      }
-      if (newTree != fTree) {
-         // The old tree is wonwd by TFileTree and will be deleted there
-         fTree = newTree;
-         attach = kTRUE;
-         fOldBytesRead = fTree->GetCurrentFile()->GetBytesRead();
+         TTree *newTree = GetTrees(fElem);
+         if (newTree) {
+            if (newTree != fTree) {
+               // The old tree is wonwd by TFileTree and will be deleted there
+               fTree = newTree;
+               attach = kTRUE;
+               fOldBytesRead = fTree->GetCurrentFile()->GetBytesRead();
+            }
+         } else {
+            // Could not open this element: ask for another one
+            SafeDelete(fElem);
+            // The current tree, if any, is not valid anymore
+            fTree = 0;
+         }
       }
 
       // Validate values for this element