items have a higher priority than attributes now.  That's compatible with Jinja1 and Django

--HG--
branch : trunk
diff --git a/jinja2/environment.py b/jinja2/environment.py
index dc8bc25..acb5c02 100644
--- a/jinja2/environment.py
+++ b/jinja2/environment.py
@@ -288,19 +288,19 @@
 
     def subscribe(self, obj, argument):
         """Get an item or attribute of an object."""
-        if isinstance(argument, basestring):
-            try:
-                attr = str(argument)
-            except:
-                pass
-            else:
-                try:
-                    return getattr(obj, attr)
-                except AttributeError:
-                    pass
         try:
             return obj[argument]
         except (TypeError, LookupError):
+            if isinstance(argument, basestring):
+                try:
+                    attr = str(argument)
+                except:
+                    pass
+                else:
+                    try:
+                        return getattr(obj, attr)
+                    except AttributeError:
+                        pass
             return self.undefined(obj=obj, name=argument)
 
     def parse(self, source, name=None, filename=None):