 
         visitNewExpression: (n) ->
                 if n.callee.type is syntax.Identifier and n.callee.name is "super"
-                        n.callee = create_identifier "%super"
+                        n.callee = @superid
                 n.arguments = @visitArray n.arguments
                 n
                 
         visitIdentifier: (n) ->
-                return create_identifier "%super" if n.name is "super"
+                return @superid if n.name is "super"
                 n
 
         visitClassDeclaration: (n) ->

                                type: syntax.MemberExpression
                                object:
                                        type: syntax.MemberExpression
                                        object: create_identifier "%super"
                                        property: create_identifier "prototype"
                                        computed: false
                                property: @method_stack.top

                super
                @class_stack = new Stack
                @method_stack = new Stack
                @superid = create_identifier "%super"

        visitCallExpression: (n) ->
                if n.callee.type is syntax.Identifier and n.callee.name is "super"
