diff --git a/bob/bio/face/database/replaymobile.py b/bob/bio/face/database/replaymobile.py
index ae61ec0b1b13c040b42b8ca1e85ce2a7e242e4b8..e2efb7811a6e1682f67840e39513c412efe5918c 100644
--- a/bob/bio/face/database/replaymobile.py
+++ b/bob/bio/face/database/replaymobile.py
@@ -8,14 +8,14 @@ from bob.db.base.annotations import read_annotation_file
 from bob.extension.download import get_file
 from bob.io.video import reader
 from bob.extension import rc
-import bob.core
 
 from sklearn.pipeline import make_pipeline
 import functools
 import os.path
+import logging
 import numpy
 
-logger = bob.core.log.setup("bob.bio.face")
+logger = logging.getLogger(__name__)
 
 def load_frame_from_file_replaymobile(file_name, frame, should_flip):
     """Loads a single frame from a video file for replay-mobile.
@@ -42,7 +42,7 @@ def load_frame_from_file_replaymobile(file_name, frame, should_flip):
     images: 3D numpy array
         The frame of the video in bob format (channel, height, width)
     """
-    logger.debug(f"Extracting frame {frame} from '{file_name}'")
+    logger.debug(f"Reading frame {frame} from '{file_name}'")
     video_reader = reader(file_name)
     image = video_reader[frame]
     # Image captured by the 'mobile' device are flipped vertically.
@@ -58,7 +58,7 @@ class ReplayMobileCSVFrameSampleLoader(CSVToSampleLoaderBiometrics):
     """A loader transformer returning a specific frame of a video file.
 
     This is specifically tailored for replay-mobile. It uses a specific loader
-    that takes the capturing device as input.
+    that processes the `should_flip` metadata to correctly orient the frames.
     """
     def __init__(
         self,
@@ -75,7 +75,7 @@ class ReplayMobileCSVFrameSampleLoader(CSVToSampleLoaderBiometrics):
         self.references_list = []
 
     def convert_row_to_sample(self, row, header):
-        """Creates a set of samples given a row of the CSV protocol definition.
+        """Creates a sample given a row of the CSV protocol definition.
         """
         fields = dict([[str(h).lower(), r] for h, r in zip(header, row)])
 
@@ -102,18 +102,16 @@ class ReplayMobileCSVFrameSampleLoader(CSVToSampleLoaderBiometrics):
             else:
                 kwargs["references"] = self.references_list
         # One row leads to multiple samples (different frames)
-        all_samples = [DelayedSample(
+        return DelayedSample(
             functools.partial(
                 load_frame_from_file_replaymobile,
                 file_name=os.path.join(self.dataset_original_directory, fields["path"] + self.extension),
-                frame=frame,
+                frame=int(fields["frame"]),
                 should_flip=fields["should_flip"]=="TRUE",
             ),
-            key=f"{fields['id']}_{frame}",
-            frame=frame,
+            key=fields['id'],
             **kwargs,
-        ) for frame in range(12,251,24)]
-        return all_samples
+        )
 
 
 def read_frame_annotation_file_replaymobile(file_name, frame, annotations_type="json"):