diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/AsDouble.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/AsDouble.java
index 0dfd91f6cff27e0bf172288cdddb0927a0c7b5f8..2a372462c9a7133bbc53745e14715be7b0632937 100644
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/AsDouble.java
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/AsDouble.java
@@ -28,6 +28,7 @@ import static com.oracle.truffle.r.nodes.builtin.CastBuilder.Predef.nullValue;
 import static com.oracle.truffle.r.runtime.builtins.RBehavior.PURE;
 import static com.oracle.truffle.r.runtime.builtins.RBuiltinKind.PRIMITIVE;
 
+import com.oracle.truffle.api.CompilerDirectives;
 import com.oracle.truffle.api.dsl.Specialization;
 import com.oracle.truffle.api.profiles.ConditionProfile;
 import com.oracle.truffle.r.nodes.builtin.RBuiltinNode;
@@ -42,11 +43,11 @@ public abstract class AsDouble extends RBuiltinNode.Arg2 {
 
     private final ConditionProfile noAttributes = ConditionProfile.createBinaryProfile();
 
-    @Child protected ReuseNonSharedNode reuseNonShared = ReuseNonSharedNode.create();
+    @Child protected ReuseNonSharedNode reuseNonShared;
 
     static {
         Casts casts = new Casts(AsDouble.class);
-        casts.arg("x").returnIf(missingValue().or(nullValue()), emptyDoubleVector()).asDoubleVector(false, false, false);
+        casts.arg("x").returnIf(missingValue().or(nullValue()), emptyDoubleVector()).asDoubleVector();
     }
 
     @Specialization
@@ -54,6 +55,10 @@ public abstract class AsDouble extends RBuiltinNode.Arg2 {
         if (noAttributes.profile(v.getAttributes() == null)) {
             return v;
         } else {
+            if (reuseNonShared == null) {
+                CompilerDirectives.transferToInterpreterAndInvalidate();
+                reuseNonShared = insert(ReuseNonSharedNode.create());
+            }
             RAbstractDoubleVector res = (RAbstractDoubleVector) reuseNonShared.execute(v);
             res.resetAllAttributes(true);
             return res;