diff --git a/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/fastrGrid/GridContext.java b/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/fastrGrid/GridContext.java
index 9b4b963429d62fac8895a37defd264e109ff1072..4bd48a15a743aaff1b327b67af887a2d02dc5712 100644
--- a/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/fastrGrid/GridContext.java
+++ b/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/fastrGrid/GridContext.java
@@ -96,18 +96,18 @@ public final class GridContext {
     public void openDefaultDevice() {
         String defaultDev = RGridGraphicsAdapter.getDefaultDevice();
         if (defaultDev.equals("awt") || defaultDev.startsWith("X11")) {
-            if (!FastRConfig.InternalGridAwtSupport) {
-                throw awtNotSupported();
-            } else {
-                setCurrentDevice(defaultDev, WindowDevice.createWindowDevice());
-            }
+            ensureAwtSupport();
+            setCurrentDevice(defaultDev, WindowDevice.createWindowDevice());
         } else if (defaultDev.equals("svg")) {
             setCurrentDevice(defaultDev, new SVGDevice("Rplot.svg", GridDevice.DEFAULT_WIDTH, GridDevice.DEFAULT_HEIGHT));
         } else if (defaultDev.equals("png")) {
+            ensureAwtSupport();
             setCurrentDevice(defaultDev, safeOpenImageDev("Rplot.png", "png"));
         } else if (defaultDev.equals("bmp")) {
+            ensureAwtSupport();
             setCurrentDevice(defaultDev, safeOpenImageDev("Rplot.bmp", "bmp"));
         } else if (defaultDev.equals("jpg") || defaultDev.equals("jpeg")) {
+            ensureAwtSupport();
             setCurrentDevice("jpeg", safeOpenImageDev("Rplot.jpg", "jpeg"));
         } else {
             throw RError.error(RError.NO_CALLER, Message.GENERIC, "FastR does not support device '" + defaultDev + "'.");
@@ -144,6 +144,12 @@ public final class GridContext {
         return RContext.getEngine().evalFunction(redrawAll, REnvironment.baseEnv().getFrame(), RCaller.topLevel, true, null, args);
     }
 
+    private static void ensureAwtSupport() {
+        if (!FastRConfig.InternalGridAwtSupport) {
+            throw awtNotSupported();
+        }
+    }
+
     private BufferedImageDevice safeOpenImageDev(String filename, String formatName) {
         try {
             return BufferedImageDevice.open(filename, formatName, GridDevice.DEFAULT_WIDTH, GridDevice.DEFAULT_HEIGHT);
diff --git a/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/fastrGrid/graphics/RGridGraphicsAdapter.java b/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/fastrGrid/graphics/RGridGraphicsAdapter.java
index bff8b3810fced4776421d6adc9092b6434ea3419..d0f5518a6e39bff1c18ac8d49218dc8a49cf56df 100644
--- a/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/fastrGrid/graphics/RGridGraphicsAdapter.java
+++ b/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/fastrGrid/graphics/RGridGraphicsAdapter.java
@@ -15,6 +15,7 @@
 package com.oracle.truffle.r.library.fastrGrid.graphics;
 
 import com.oracle.truffle.r.library.fastrGrid.FastRGridExternalLookup;
+import com.oracle.truffle.r.runtime.FastRConfig;
 import com.oracle.truffle.r.runtime.RError;
 import com.oracle.truffle.r.runtime.RError.Message;
 import com.oracle.truffle.r.runtime.ROptions;
@@ -70,7 +71,7 @@ public final class RGridGraphicsAdapter {
         if (options.getValue(DEFAULT_DEVICE_OPTION) != RNull.instance) {
             return;
         }
-        String defaultDevice = ctx.isInteractive() ? "awt" : "svg";
+        String defaultDevice = (ctx.isInteractive() && FastRConfig.InternalGridAwtSupport) ? "awt" : "svg";
         try {
             options.setValue(DEFAULT_DEVICE_OPTION, defaultDevice);
         } catch (OptionsException e) {