Index: django/core/urlresolvers.py
===================================================================
--- django/core/urlresolvers.py	(revision 2546)
+++ django/core/urlresolvers.py	(working copy)
@@ -29,7 +29,7 @@
         self.callback = callback
         self.default_args = default_args or {}
 
-    def resolve(self, path):
+    def resolve(self, path, app_root = ''):
         match = self.regex.search(path)
         if match:
             # If there are any named groups, use those as kwargs, ignoring
@@ -44,10 +44,10 @@
             kwargs.update(self.default_args)
 
             try: # Lazily load self.func.
-                return self.func, args, kwargs
+                return self.func, args, kwargs, app_root
             except AttributeError:
                 self.func = self.get_callback()
-            return self.func, args, kwargs
+            return self.func, args, kwargs, app_root
 
     def get_callback(self):
         mod_name, func_name = get_mod_func(self.callback)
@@ -65,19 +65,19 @@
         self.regex = re.compile(regex)
         self.urlconf_name = urlconf_name
 
-    def resolve(self, path):
+    def resolve(self, path, app_root=''):
         tried = []
         match = self.regex.search(path)
         if match:
             new_path = path[match.end():]
             for pattern in self.urlconf_module.urlpatterns:
                 try:
-                    sub_match = pattern.resolve(new_path)
+                    sub_match = pattern.resolve(new_path, app_root + match.group(0))
                 except Resolver404, e:
                     tried.extend([(pattern.regex.pattern + '   ' + t) for t in e.args[0]['tried']])
                 else:
                     if sub_match:
-                        return sub_match[0], sub_match[1], dict(match.groupdict(), **sub_match[2])
+                        return sub_match[0], sub_match[1], dict(match.groupdict(), **sub_match[2]), sub_match[3]
                     tried.append(pattern.regex.pattern)
             raise Resolver404, {'tried': tried, 'path': new_path}
 
Index: django/core/handlers/base.py
===================================================================
--- django/core/handlers/base.py	(revision 2546)
+++ django/core/handlers/base.py	(working copy)
@@ -61,7 +61,8 @@
 
         resolver = urlresolvers.RegexURLResolver(r'^/', settings.ROOT_URLCONF)
         try:
-            callback, callback_args, callback_kwargs = resolver.resolve(path)
+            callback, callback_args, callback_kwargs, app_root = resolver.resolve(path)
+            request.app_root = app_root
 
             # Apply view middleware
             for middleware_method in self._view_middleware:
