diff --git a/basetheme_bootstrap/user_preferences.py b/basetheme_bootstrap/user_preferences.py
index 915e70706dfce16e0c97ce3e794d2cb1c8a255ef..6acedcde127b213ff137be11cdb0b261afc8bc58 100644
--- a/basetheme_bootstrap/user_preferences.py
+++ b/basetheme_bootstrap/user_preferences.py
@@ -99,13 +99,19 @@ class UserPreferencesAbstractModel(models.Model):
 
     @classmethod
     def get_allowed_fields(cls):
+        if cls.preferences_groups is not None:
+            for group, fields in cls.preferences_groups.items():
+                for f in fields:
+                    yield f
+            return
         for field_name in [f.name for f in cls._meta.get_fields()]:
             if field_name == "id" or field_name == "pk" or field_name == "user":
                 continue
             yield field_name
 
+    @classmethod
     @property
-    def preferences_groups(self):
+    def preferences_groups(cls):
         return None
 
     @property
diff --git a/setup.py b/setup.py
index d928b6ae50f8bb98122d94e6b772bf89ee3cedae..cbad581badf5325fc03a0139662bdcc04cbff788 100644
--- a/setup.py
+++ b/setup.py
@@ -7,7 +7,7 @@ readme = open('README.rst').read()
 
 setup(
     name='django-basetheme-bootstrap',
-    version='0.2.28',
+    version='0.2.29',
     description='Django Basetheme Bootstrap',
     long_description=readme,
     author='Bryan Brancotte',