Index: trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/DefaultCodeBuilder.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/DefaultCodeBuilder.java	(revision 46083)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/DefaultCodeBuilder.java	(revision 46084)
@@ -76,12 +76,12 @@
         
         @Override
         public void accept(Visitor visitor) throws BaseException {
-            visitor.visit(this);
+            this.accept(visitor, null);
         }
 
         @Override
         public void accept(Visitor visitor, Predicate<FilteredVisitable> exclude) throws BaseException {
-            if( !exclude.test(this) ) {
+            if( exclude==null || !exclude.test(this) ) {
                 visitor.visit(this);
             }
         }
@@ -347,17 +347,13 @@
 
         @Override
         public void accept(Visitor visitor) throws BaseException {
-            for( Code arg : this.codes ) {
-                if(arg!=null) {
-                    arg.accept(visitor);
-                }
-            }
+            this.accept(visitor, null);
         }
 
         public void accept(Visitor visitor, Predicate<FilteredVisitable> exclude) throws BaseException {
-            if( !exclude.test(this) ) {
+            if( this.codes != null ) {
                 for( Code arg : this.codes ) {
-                    if(arg!=null) {
+                    if(arg!=null ) {
                         arg.accept(visitor, exclude);
                     }
                 }
@@ -492,24 +488,14 @@
         }
 
         @Override
-        public void accept(Visitor visitor) throws BaseException {
-            visitor.visit(this);
+        public void accept(Visitor visitor, Predicate<FilteredVisitable> exclude) throws BaseException {
+            super.accept(visitor, exclude);
             if(this.args!=null) {
-                this.args.accept(visitor);
+                this.args.accept(visitor, exclude);
             }
         }
 
         @Override
-        public void accept(Visitor visitor, Predicate<FilteredVisitable> exclude) throws BaseException {
-            if( !exclude.test(this) ) {
-                visitor.visit(this);
-                if(this.args!=null) {
-                    this.args.accept(visitor, exclude);
-                }
-            }
-        }
-
-        @Override
         public Value toValue(ExpressionBuilder builder) {
             ExpressionBuilder.Value value;
             switch(this.type) {
@@ -640,28 +626,15 @@
         }
 
         @Override
-        public void accept(Visitor visitor) throws BaseException {
-            visitor.visit(this);
+        public void accept(Visitor visitor, Predicate<FilteredVisitable> exclude) throws BaseException {
+            super.accept(visitor, exclude);
             if(this.instance!=null) {
-                this.instance.accept(visitor);
+               this.instance.accept(visitor, exclude);
             }            
             if(this.args!=null) {
-                this.args.accept(visitor);
+                this.args.accept(visitor, exclude);
             }            
         }
-        
-        @Override
-        public void accept(Visitor visitor, Predicate<FilteredVisitable> exclude) throws BaseException {
-            if( !exclude.test(this) ) {
-                visitor.visit(this);
-                if(this.instance!=null) {
-                    this.instance.accept(visitor, exclude);
-                }            
-                if(this.args!=null) {
-                    this.args.accept(visitor, exclude);
-                }            
-            }
-        }
 
         @Override
         public Code clone() throws CloneNotSupportedException {
