subscribe doesn't eat up unicode errors any longer

--HG--
branch : trunk
diff --git a/jinja2/sandbox.py b/jinja2/sandbox.py
index c041a06..714a0e1 100644
--- a/jinja2/sandbox.py
+++ b/jinja2/sandbox.py
@@ -120,13 +120,18 @@
         is_unsafe = False
         if isinstance(argument, basestring):
             try:
-                value = getattr(obj, str(argument))
-            except (AttributeError, UnicodeError):
+                attr = str(argument)
+            except:
                 pass
             else:
-                if self.is_safe_attribute(obj, argument, value):
-                    return value
-                is_unsafe = True
+                try:
+                    value = getattr(obj, attr)
+                except AttributeError:
+                    pass
+                else:
+                    if self.is_safe_attribute(obj, argument, value):
+                        return value
+                    is_unsafe = True
         try:
             return obj[argument]
         except (TypeError, LookupError):