diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/query/RQIRWrapperNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/query/RQIRWrapperNode.java
index 5644e696343ea5ff93c51aa75161ddfcbf5ff9b5..31d954defdac50402052c378ac0a7cb0bdbb36e4 100644
--- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/query/RQIRWrapperNode.java
+++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/query/RQIRWrapperNode.java
@@ -71,16 +71,16 @@ public final class RQIRWrapperNode extends RSourceSectionNode implements RSyntax
 
     @Override
     public RSyntaxElement[] getSyntaxArgumentDefaults() {
-        return null;
+        return new RSyntaxElement[0];
     }
 
     @Override
     public RSyntaxElement getSyntaxBody() {
-        return null;
+        return this;
     }
 
     @Override
     public String getSyntaxDebugName() {
-        return null;
+        return getSourceSection().getCode();
     }
 }
diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/query/RQueryNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/query/RQueryNode.java
index fdcc9ab41b1abd3ce04cd6e09d6a1b94a13305f7..2697e2f79f472f4914011975a1bdedc8941b876a 100644
--- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/query/RQueryNode.java
+++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/query/RQueryNode.java
@@ -26,14 +26,10 @@ import com.oracle.truffle.api.frame.VirtualFrame;
 import com.oracle.truffle.api.nodes.NodeInfo;
 import com.oracle.truffle.api.object.DynamicObject;
 import com.oracle.truffle.api.source.SourceSection;
-import com.oracle.truffle.r.runtime.ArgumentsSignature;
 import com.oracle.truffle.r.runtime.nodes.RSourceSectionNode;
-import com.oracle.truffle.r.runtime.nodes.RSyntaxElement;
-import com.oracle.truffle.r.runtime.nodes.RSyntaxFunction;
-import com.oracle.truffle.r.runtime.nodes.RSyntaxNode;
 
 @NodeInfo(shortName = "Query")
-public abstract class RQueryNode extends RSourceSectionNode implements RSyntaxNode, RSyntaxFunction {
+public abstract class RQueryNode extends RSourceSectionNode {
     public RQueryNode(final SourceSection src) {
         super(src);
     }
@@ -42,24 +38,4 @@ public abstract class RQueryNode extends RSourceSectionNode implements RSyntaxNo
     public final DynamicObject execute(final VirtualFrame frame) {
         throw new RuntimeException("We should not execute a RQueryNode directly.");
     }
-
-    @Override
-    public ArgumentsSignature getSyntaxSignature() {
-        return null;
-    }
-
-    @Override
-    public RSyntaxElement[] getSyntaxArgumentDefaults() {
-        return null;
-    }
-
-    @Override
-    public RSyntaxElement getSyntaxBody() {
-        return null;
-    }
-
-    @Override
-    public String getSyntaxDebugName() {
-        return null;
-    }
 }
diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/nodes/RCodeBuilder.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/nodes/RCodeBuilder.java
index 968444aeb98030261b27e368066ad0f0004269bd..0c7f9944842b3ff05069568bfb4162f5007faf52 100644
--- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/nodes/RCodeBuilder.java
+++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/nodes/RCodeBuilder.java
@@ -200,6 +200,8 @@ public interface RCodeBuilder<T> {
 
             @Override
             protected T visit(RSyntaxFunction element) {
+                if (element.getSyntaxBody() == element)
+                    return (T) element;
                 ArrayList<Argument<T>> params = createArguments(element.getSyntaxSignature(), element.getSyntaxArgumentDefaults());
                 return function(element.getLazySourceSection(), params, accept(element.getSyntaxBody()), element.getSyntaxDebugName());
             }