diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastDoubleBaseNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastDoubleBaseNode.java
index b98cb221e2cc59cce8e76e03df19ea12e909b922..dee35f5efb184f4ed4da4bdd1b1346d951cd58ff 100644
--- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastDoubleBaseNode.java
+++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastDoubleBaseNode.java
@@ -40,7 +40,6 @@ import com.oracle.truffle.r.runtime.ops.na.NAProfile;
 public abstract class CastDoubleBaseNode extends CastBaseNode {
 
     protected final NACheck naCheck = NACheck.create();
-    protected final NAProfile naProfile = NAProfile.create();
 
     protected CastDoubleBaseNode(boolean preserveNames, boolean preserveDimensions, boolean preserveAttributes) {
         super(preserveNames, preserveDimensions, preserveAttributes);
@@ -110,7 +109,8 @@ public abstract class CastDoubleBaseNode extends CastBaseNode {
 
     @Specialization
     protected double doString(String operand,
-                    @Cached("createBinaryProfile()") ConditionProfile emptyStringProfile) {
+                    @Cached("createBinaryProfile()") ConditionProfile emptyStringProfile,
+                    @Cached("create()") NAProfile naProfile) {
         if (naProfile.isNA(operand) || emptyStringProfile.profile(operand.isEmpty())) {
             return RRuntime.DOUBLE_NA;
         }