don't evaluate trans arguments twice.
diff --git a/jinja2/ext.py b/jinja2/ext.py
index 206756f..1d888a2 100644
--- a/jinja2/ext.py
+++ b/jinja2/ext.py
@@ -241,7 +241,10 @@
                 variables[name.value] = var = nodes.Name(name.value, 'load')
 
             if plural_expr is None:
-                plural_expr = var
+                if isinstance(var, nodes.Call):
+                    plural_expr = nodes.Name(name.value, 'load')
+                else:
+                    plural_expr = var
                 num_called_num = name.value == 'num'
 
         parser.stream.expect('block_end')