diff --git a/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/shell/REmbedded.java b/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/shell/REmbedded.java
index 1f038b358c5468030cb435f0dfc7e20d12ad3e18..9169ded7d1bf42b99cecca439c26f1209f98b772 100644
--- a/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/shell/REmbedded.java
+++ b/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/shell/REmbedded.java
@@ -23,7 +23,6 @@
 package com.oracle.truffle.r.engine.shell;
 
 import org.graalvm.polyglot.Context;
-import org.graalvm.polyglot.Context.Builder;
 import org.graalvm.polyglot.Engine;
 
 import com.oracle.truffle.api.vm.PolyglotEngine;
@@ -64,7 +63,6 @@ import com.oracle.truffle.r.runtime.context.RContext;
 public class REmbedded {
 
     private static ConsoleHandler consoleHandler;
-    private static Engine engine;
     private static Context context;
 
     /**
@@ -74,14 +72,12 @@ public class REmbedded {
      * the {@link RStartParams}, which happens after this call returns.
      */
     private static void initializeR(String[] args) {
-        assert engine == null;
+        assert context == null;
         RContext.setEmbedded();
         RCmdOptions options = RCmdOptions.parseArguments(RCmdOptions.Client.R, args, false);
 
-        engine = Engine.create();
         consoleHandler = RCommand.createConsoleHandler(options, true, System.in, System.out);
-        Builder builder = Context.newBuilder().engine(engine);
-        try (Context cntx = builder.arguments("R", options.getArguments()).in(consoleHandler.createInputStream()).out(System.out).err(System.err).build()) {
+        try (Context cntx = Context.newBuilder().arguments("R", options.getArguments()).in(consoleHandler.createInputStream()).out(System.out).err(System.err).build()) {
             context = cntx;
             consoleHandler.setContext(context);
             context.eval("R", INIT);
@@ -114,7 +110,6 @@ public class REmbedded {
         }
         int status = RCommand.readEvalPrint(context, consoleHandler);
         context.close();
-        engine.close();
         Utils.systemExit(status);
     }
 
diff --git a/com.oracle.truffle.r.launcher/src/com/oracle/truffle/r/launcher/RCommand.java b/com.oracle.truffle.r.launcher/src/com/oracle/truffle/r/launcher/RCommand.java
index ef547b6a2b1d87a0fe0c05df2d2f2511daefb993..c4a73a72284ff214792d805b93206eacf41e3144 100644
--- a/com.oracle.truffle.r.launcher/src/com/oracle/truffle/r/launcher/RCommand.java
+++ b/com.oracle.truffle.r.launcher/src/com/oracle/truffle/r/launcher/RCommand.java
@@ -31,8 +31,6 @@ import java.nio.file.Files;
 import java.util.List;
 
 import org.graalvm.polyglot.Context;
-import org.graalvm.polyglot.Context.Builder;
-import org.graalvm.polyglot.Engine;
 import org.graalvm.polyglot.PolyglotException;
 import org.graalvm.polyglot.Source;
 
@@ -94,16 +92,13 @@ public class RCommand {
         }
         RCmdOptions options = RCmdOptions.parseArguments(RCmdOptions.Client.R, args, false);
         options.printHelpAndVersion();
-        try (Engine engine = Engine.create()) {
-            assert env == null : "re-enable setting environments";
-            ConsoleHandler consoleHandler = createConsoleHandler(options, false, inStream, outStream);
-            Builder builder = Context.newBuilder().engine(engine);
-            try (Context context = builder.arguments("R", options.getArguments()).in(consoleHandler.createInputStream()).out(outStream).err(errStream).build()) {
-                consoleHandler.setContext(context);
-                StartupTiming.timestamp("VM Created");
-                StartupTiming.printSummary();
-                return readEvalPrint(context, consoleHandler);
-            }
+        assert env == null : "re-enable setting environments";
+        ConsoleHandler consoleHandler = createConsoleHandler(options, false, inStream, outStream);
+        try (Context context = Context.newBuilder().arguments("R", options.getArguments()).in(consoleHandler.createInputStream()).out(outStream).err(errStream).build()) {
+            consoleHandler.setContext(context);
+            StartupTiming.timestamp("VM Created");
+            StartupTiming.printSummary();
+            return readEvalPrint(context, consoleHandler);
         }
     }
 
diff --git a/com.oracle.truffle.r.launcher/src/com/oracle/truffle/r/launcher/RscriptCommand.java b/com.oracle.truffle.r.launcher/src/com/oracle/truffle/r/launcher/RscriptCommand.java
index a6d4faa44eb3e114571de92d16859c32a2e0b14f..28c65b70f10eb584107115cec9e4bae0a0be9b5e 100644
--- a/com.oracle.truffle.r.launcher/src/com/oracle/truffle/r/launcher/RscriptCommand.java
+++ b/com.oracle.truffle.r.launcher/src/com/oracle/truffle/r/launcher/RscriptCommand.java
@@ -27,7 +27,6 @@ import java.io.OutputStream;
 import java.util.ArrayList;
 
 import org.graalvm.polyglot.Context;
-import org.graalvm.polyglot.Engine;
 
 import com.oracle.truffle.r.launcher.RCmdOptions.RCmdOption;
 
@@ -109,13 +108,11 @@ public class RscriptCommand {
         RCmdOptions options = RCmdOptions.parseArguments(RCmdOptions.Client.RSCRIPT, args, false);
         preprocessRScriptOptions(options);
 
-        try (Engine engine = Engine.create()) {
-            ConsoleHandler consoleHandler = RCommand.createConsoleHandler(options, false, inStream, outStream);
-            try (Context context = Context.newBuilder().engine(engine).arguments("R",
-                            options.getArguments()).in(consoleHandler.createInputStream()).out(outStream).err(errStream).build()) {
-                consoleHandler.setContext(context);
-                return RCommand.readEvalPrint(context, consoleHandler);
-            }
+        ConsoleHandler consoleHandler = RCommand.createConsoleHandler(options, false, inStream, outStream);
+        try (Context context = Context.newBuilder().arguments("R",
+                        options.getArguments()).in(consoleHandler.createInputStream()).out(outStream).err(errStream).build()) {
+            consoleHandler.setContext(context);
+            return RCommand.readEvalPrint(context, consoleHandler);
         }
     }
 
diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/shell/TestJLineConsoleCompleter.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/shell/TestJLineConsoleCompleter.java
index 17dd5fdd79e9591053246ff48a71d1f24342945d..62c394af99bc92277b408f3d7c395590b61cf656 100644
--- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/shell/TestJLineConsoleCompleter.java
+++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/shell/TestJLineConsoleCompleter.java
@@ -29,7 +29,6 @@ import java.io.File;
 import java.util.LinkedList;
 
 import org.graalvm.polyglot.Context;
-import org.graalvm.polyglot.Engine;
 import org.junit.After;
 import org.junit.Assert;
 import org.junit.Before;
@@ -39,15 +38,13 @@ import com.oracle.truffle.r.launcher.JLineConsoleCompleter;
 
 public class TestJLineConsoleCompleter {
 
-    private Engine engine;
     private Context context;
     private JLineConsoleCompleter consoleCompleter;
 
     @Before
     public void before() {
         JLineConsoleCompleter.testingMode();
-        engine = Engine.create();
-        context = Context.newBuilder().engine(engine).build();
+        context = Context.create();
         consoleCompleter = new JLineConsoleCompleter(context);
     }
 
@@ -56,9 +53,6 @@ public class TestJLineConsoleCompleter {
         if (context != null) {
             context.close();
         }
-        if (engine != null) {
-            engine.close();
-        }
     }
 
     @Test