Index: django/contrib/auth/models.py
===================================================================
--- django/contrib/auth/models.py	(revision 13315)
+++ django/contrib/auth/models.py	(working copy)
@@ -108,7 +108,7 @@
         """
 
         now = datetime.datetime.now()
-        
+
         # Normalize the address by lowercasing the domain part of the email
         # address.
         try:
@@ -351,25 +351,60 @@
         """
         if not hasattr(self, '_profile_cache'):
             from django.conf import settings
-            if not getattr(settings, 'AUTH_PROFILE_MODULE', False):
+            if not getattr(settings, 'AUTH_PROFILE_MODULE', False) and (
+                not getattr(settings, 'AUTH_PROFILE_MODULES', False)):
+                raise SiteProfileNotAvailable('You need to set AUTH_PROFILE_MOD'
+                                              'ULE or AUTH_PROFILE_MODULES in y'
+                                              'our project settings')
+            if getattr(settings, 'AUTH_PROFILE_MODULE', False) is not False and (
+                getattr(settings, 'AUTH_PROFILE_MODULES', False) is not False):
                 raise SiteProfileNotAvailable('You need to set AUTH_PROFILE_MO'
-                                              'DULE in your project settings')
-            try:
-                app_label, model_name = settings.AUTH_PROFILE_MODULE.split('.')
-            except ValueError:
-                raise SiteProfileNotAvailable('app_label and model_name should'
-                        ' be separated by a dot in the AUTH_PROFILE_MODULE set'
-                        'ting')
-
-            try:
-                model = models.get_model(app_label, model_name)
-                if model is None:
-                    raise SiteProfileNotAvailable('Unable to load the profile '
-                        'model, check AUTH_PROFILE_MODULE in your project sett'
-                        'ings')
-                self._profile_cache = model._default_manager.using(self._state.db).get(user__id__exact=self.id)
-                self._profile_cache.user = self
-            except (ImportError, ImproperlyConfigured):
+                                              'DULE or AUTH_PROFILE_MODULES in '
+                                              'your project settings not both')
+            if getattr(settings, 'AUTH_PROFILE_MODULE', False) is not False:
+                try:
+                    app_label, model_name = settings.AUTH_PROFILE_MODULE.split('.')
+                except ValueError:
+                    raise SiteProfileNotAvailable('app_label and model_name sho'
+                                                  'uld be separated by a dot in'
+                                                  ' the AUTH_PROFILE_MODULE set'
+                                                  'ting')
+                try:
+                    model = models.get_model(app_label, model_name)
+                    if model is None:
+                        raise SiteProfileNotAvailable('Unable to load the profi'
+                                                      'le model, check AUTH_PRO'
+                                                      'FILE_MODULE in your proj'
+                                                      'ect settings')
+                    self._profile_cache = model._default_manager.using(self._state.db).get(user__id__exact=self.id)
+                    self._profile_cache.user = self
+                except (ImportError, ImproperlyConfigured):
+                    raise SiteProfileNotAvailable
+            elif getattr(settings, 'AUTH_PROFILE_MODULES', False) is not False:
+                for profile_module in settings.AUTH_PROFILE_MODULES:
+                    try:
+                        app_label, model_name = profile_module.split('.')
+                    except ValueError:
+                        raise SiteProfileNotAvailable('app_label and model_name'
+                                                      'should be separated by a'
+                                                      ' dot in the AUTH_PROFILE'
+                                                      '_MODULE setting')
+                    try:
+                        model = models.get_model(app_label, model_name)
+                        if model is None:
+                            raise SiteProfileNotAvailable('Unable to load the p'
+                                                          'rofile model, check '
+                                                          'AUTH_PROFILE_MODULE '
+                                                          'in your project sett'
+                                                          'ings')
+                        if not hasattr(self, '_profile_cache'):
+                            self._profile_cache = model._default_manager.using(self._state.db).get(user__id__exact=self.id)
+                            self._profile_cache.user = self
+                        else:
+                            self._profile_cache.__dict__.update(model._default_manager.using(self._state.db).get(user__id__exact=self.id).__dict__)
+                    except (ImportError, ImproperlyConfigured):
+                        raise SiteProfileNotAvailable
+            else:
                 raise SiteProfileNotAvailable
         return self._profile_cache
 
