diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/context/RContext.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/context/RContext.java
index bd968fce28658fa6a8960386888877b6d8a88099..dfdf08646513d442ee3f2cf655b81cc45fe3453d 100644
--- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/context/RContext.java
+++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/context/RContext.java
@@ -279,7 +279,7 @@ public final class RContext {
 
     private EnumSet<State> state = EnumSet.noneOf(State.class);
 
-    private PrimitiveMethodsInfo primitiveMethodsInfo;
+    @CompilationFinal private PrimitiveMethodsInfo primitiveMethodsInfo;
 
     /** Class loader for Java interop. */
     private ClassLoader interopClassLoader = FastRConfig.InternalGridAwtSupport ? getClass().getClassLoader() : null;
@@ -691,7 +691,6 @@ public final class RContext {
         s4ExtendsTable.put(key, value);
     }
 
-    @TruffleBoundary
     public PrimitiveMethodsInfo getPrimitiveMethodsInfo() {
         if (primitiveMethodsInfo == null) {
             // shared contexts do not run concurrently with their parent and re-use primitive