diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/RASTBuilder.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/RASTBuilder.java
index 441422963fbecd470e0edaede395022b40dbdb17..eddab6d9daab0fa48fcf3ac0957d00073213e9b8 100644
--- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/RASTBuilder.java
+++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/RASTBuilder.java
@@ -46,7 +46,6 @@ import com.oracle.truffle.r.nodes.function.FormalArguments;
 import com.oracle.truffle.r.nodes.function.FunctionDefinitionNode;
 import com.oracle.truffle.r.nodes.function.FunctionExpressionNode;
 import com.oracle.truffle.r.nodes.function.PostProcessArgumentsNode;
-import com.oracle.truffle.r.nodes.function.RCallNode;
 import com.oracle.truffle.r.nodes.function.RCallSpecialNode;
 import com.oracle.truffle.r.nodes.function.SaveArgumentsNode;
 import com.oracle.truffle.r.nodes.function.WrapDefaultArgumentNode;
@@ -84,11 +83,6 @@ public final class RASTBuilder implements RCodeBuilder<RSyntaxNode> {
         this.constants = constants;
     }
 
-    @SuppressWarnings({"unused", "static-method"})
-    private RCallNode unused() {
-        return null; // we need reference to RCallNode, otherwise it won't compile, compilation bug?
-    }
-
     @Override
     public RSyntaxNode call(SourceSection source, RSyntaxNode lhs, List<Argument<RSyntaxNode>> args) {
         if (lhs instanceof RSyntaxLookup) {
diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/RASTUtils.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/RASTUtils.java
index 910e062082ce458937f3f726128fabc346fb5071..110a168f5d2460dc4e56ec5c8537ff20118363a6 100644
--- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/RASTUtils.java
+++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/RASTUtils.java
@@ -33,7 +33,6 @@ import com.oracle.truffle.r.nodes.access.ReadVariadicComponentNode;
 import com.oracle.truffle.r.nodes.access.variables.ReadVariableNode;
 import com.oracle.truffle.r.nodes.builtin.RBuiltinNode;
 import com.oracle.truffle.r.nodes.function.PromiseNode.VarArgNode;
-import com.oracle.truffle.r.nodes.function.RCallBaseNode;
 import com.oracle.truffle.r.nodes.function.RCallNode;
 import com.oracle.truffle.r.nodes.function.RCallSpecialNode;
 import com.oracle.truffle.r.nodes.function.WrapArgumentBaseNode;
diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/vector/CachedExtractVectorNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/vector/CachedExtractVectorNode.java
index 67a858a2e7d25726f7db1b0591f28919e57955f3..f42f5c7b72ffb6682738120fb9b90d8485bce874 100644
--- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/vector/CachedExtractVectorNode.java
+++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/vector/CachedExtractVectorNode.java
@@ -68,7 +68,6 @@ final class CachedExtractVectorNode extends CachedVectorNode {
 
     private final VectorLengthProfile vectorLengthProfile = VectorLengthProfile.create();
     private final RAttributeProfiles vectorNamesProfile = RAttributeProfiles.create();
-    private final ValueProfile vectorClassProfile = ValueProfile.createClassProfile();
 
     @Child private WriteIndexedVectorNode writeVectorNode;
     @Child private PositionsCheckNode positionsCheckNode;
diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/env/frame/FrameSlotChangeMonitor.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/env/frame/FrameSlotChangeMonitor.java
index c616637b9d65a548a3bbbaa1c7305a4c1e277e08..8455c58c0cfc800c59c6c75c67e4db142cee5a14 100644
--- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/env/frame/FrameSlotChangeMonitor.java
+++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/env/frame/FrameSlotChangeMonitor.java
@@ -391,9 +391,11 @@ public final class FrameSlotChangeMonitor {
             }
         }
         target.lookupResults.clear();
-        target.previousLookups.clear();
-        for (FrameDescriptor sub : target.subDescriptors) {
-            invalidateAllNames(getMetaData(sub));
+        if (!target.previousLookups.isEmpty()) {
+            target.previousLookups.clear();
+            for (FrameDescriptor sub : target.subDescriptors) {
+                invalidateAllNames(getMetaData(sub));
+            }
         }
     }
 
diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/nodes/RBaseNode.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/nodes/RBaseNode.java
index eb582730d2995159cc92e7df581710f0d123e068..b3a6037cc7984b7723353c16950b94a6ba60b4a6 100644
--- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/nodes/RBaseNode.java
+++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/nodes/RBaseNode.java
@@ -100,7 +100,7 @@ public abstract class RBaseNode extends Node {
     /**
      * Handles the discovery of the {@link RSyntaxNode} that this node is derived from.
      */
-    public RSyntaxNode asRSyntaxNode() {
+    public final RSyntaxNode asRSyntaxNode() {
         if (isRSyntaxNode()) {
             return (RSyntaxNode) this;
         } else {
@@ -111,7 +111,7 @@ public abstract class RBaseNode extends Node {
     /**
      * See comment on {@link #checkGetRSyntaxNode()}.
      */
-    public RSyntaxNode checkasRSyntaxNode() {
+    public final RSyntaxNode checkasRSyntaxNode() {
         if (isRSyntaxNode()) {
             return (RSyntaxNode) this;
         } else {