diff --git a/bob/pad/face/database/brsu.py b/bob/pad/face/database/brsu.py
index 2b91750265d3fe03bebd5b45451565880e3dd0a3..ca4bd138322f04074e9eae8ce736a68811767289 100644
--- a/bob/pad/face/database/brsu.py
+++ b/bob/pad/face/database/brsu.py
@@ -140,7 +140,8 @@ class BRSUPadDatabase(PadDatabase):
         samples : :py:class:`BRSUPadFile`
             A list of BRSUPadFile objects.
         """
-        if groups is not None:
+        lowlevel_purposes = None
+        if groups is not None and purposes is not None:
           
           # for training
           lowlevel_purposes = []
@@ -155,6 +156,13 @@ class BRSUPadDatabase(PadDatabase):
           if 'test' in groups and 'attack' in purposes:
             lowlevel_purposes.append('attack')
 
+        if groups is None and purposes is not None:
+          lowlevel_purposes = []
+          if 'real' in purposes:
+            lowlevel_purposes.append('real')
+          if 'attack' in purposes:
+            lowlevel_purposes.append('attack')
+
         samples = self.db.objects(groups=groups, purposes=lowlevel_purposes, **kwargs)
         samples = [BRSUPadFile(s) for s in samples]
         return samples