diff --git a/src/accelerate/data_loader.py b/src/accelerate/data_loader.py
index 9236ee310..cbe39efa3 100644
--- a/src/accelerate/data_loader.py
+++ b/src/accelerate/data_loader.py
@@ -463,10 +463,10 @@ def _fetch_batches(self, iterator):
                     batch_info = [None, True]
                 broadcast_object_list(batch_info)
                 if batch_info[1]:
-                    return batch, batch_info, True
+                    return batch, batch_info
             else:
-                return batch, batch_info, True
-        return batch, batch_info, False
+                return batch, batch_info
+        return batch, batch_info
 
     def __iter__(self):
         self.gradient_state._set_end_of_dataloader(False)
@@ -477,11 +477,10 @@ def __iter__(self):
         stop_iteration = False
         self._stop_iteration = False
         first_batch = None
-        next_batch, next_batch_info, next_skip = self._fetch_batches(main_iterator)
+        next_batch, next_batch_info = self._fetch_batches(main_iterator)
         while not stop_iteration:
-            batch, batch_info, skip = next_batch, next_batch_info, next_skip
-            if skip:
-                continue
+            batch, batch_info = next_batch, next_batch_info
+
             if self.state.process_index != 0:
                 # Initialize tensors on other processes than process 0.
                 batch = initialize_tensors(batch_info[0])
@@ -500,7 +499,7 @@ def __iter__(self):
             if not stop_iteration:
                 # We may still be at the end of the dataloader without knowing it yet: if there is nothing left in
                 # the dataloader since the number of batches is a round multiple of the number of processes.
-                next_batch, next_batch_info, next_skip = self._fetch_batches(main_iterator)
+                next_batch, next_batch_info = self._fetch_batches(main_iterator)
                 # next_batch_info[0] is None when there are no more batches, otherwise we still need to process them.
                 if self._stop_iteration and next_batch_info[0] is None:
                     stop_iteration = True



Discussion: body: _The documentation is not available anymore as the PR was closed or merged._
body: Hello, for some reason I wasn't notified by github about review request, looks good. I was thinking if the below part of `_fetch_batches` could be simplified 

```diff
def _fetch_batches(self, iterator):
        batches, batch = None, None
        # On process 0, we gather the batch to dispatch.
        if self.state.process_index == 0:
            try:
                if self.split_batches:
                    # One batch of the main iterator is dispatched and split.
                    batch = next(iterator)
                else:
                    # num_processes batches of the main iterator are concatenated then dispatched and split.
                    # We add the batches one by one so we have the remainder available when drop_last=False.
                    batches = []
                    for _ in range(self.state.num_processes):
                        batches.append(next(iterator))
                    batch = concatenate(batches, dim=0)
                # In both cases, we need to get the structure of the batch that we will broadcast on other
                # processes to initialize the tensors with the right shape.
                # data_structure, stop_iteration
                batch_info = [get_data_structure(batch), False]
            except StopIteration:
                batch_info = [None, True]
        else:
            batch_info = [None, self._stop_iteration]
        # This is inplace, so after this instruction, every process has the same `batch_info` as process 0.
        broadcast_object_list(batch_info)
        self._stop_iteration = batch_info[1]
        if self._stop_iteration:
            # If drop_last is False and split_batches is False, we may have a remainder to take care of.
            if not self.split_batches and not self._drop_last:
                if self.state.process_index == 0 and len(batches) > 0:
                    batch = concatenate(batches, dim=0)
                    batch_info = [get_data_structure(batch), False]
                else:
                    batch_info = [None, True]
                broadcast_object_list(batch_info)
-                if batch_info[1]:
-                    return batch, batch_info
-            else:
-                return batch, batch_info
        return batch, batch_info
```
body: Yes, you're right thanks! Will make a follow-up PR.