diff --git a/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/fastrGrid/GPar.java b/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/fastrGrid/GPar.java
index f826ccd696f2f509374b4b9c2b072fa9ab75957c..2e46872077b1b9d058a76ababe52e67bcffe66bf 100644
--- a/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/fastrGrid/GPar.java
+++ b/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/fastrGrid/GPar.java
@@ -264,7 +264,16 @@ public final class GPar {
         }
 
         private GridColor getGridColor(int listIndex) {
-            GridColor color = GridColorUtils.gridColorFromString(GridUtils.asString(data[listIndex], index));
+            Object value = data[listIndex];
+            String strValue = null;
+            if (value instanceof String) {
+                strValue = (String) value;
+            } else if (value instanceof RAbstractStringVector && ((RAbstractStringVector) value).getLength() > 0) {
+                strValue = ((RAbstractStringVector) value).getDataAt(listIndex % ((RAbstractStringVector) value).getLength());
+            } else {
+                return GridColor.TRANSPARENT;
+            }
+            GridColor color = GridColorUtils.gridColorFromString(strValue);
             double alpha = asDouble(data[GP_ALPHA], index);
             if (alpha != 1.) {
                 int newAlpha = Math.min(255, (int) (alpha * ((color.getAlpha() / 255.0) * 255)));
diff --git a/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/fastrGrid/GridColorUtils.java b/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/fastrGrid/GridColorUtils.java
index 939a90546e5b2cfcb1ef3155d6c352519e64fe16..9ab71e892308256b4dad68cca67dc32ed63df0b2 100644
--- a/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/fastrGrid/GridColorUtils.java
+++ b/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/fastrGrid/GridColorUtils.java
@@ -34,6 +34,11 @@ public final class GridColorUtils {
             return parseHex(value);
         }
 
+        if (value.equals("NA")) {
+            // special case value, we want to check only for "NA", not "na".
+            return GridColor.TRANSPARENT;
+        }
+
         Object result = findByName(value);
         if (result == null) {
             throw RError.error(RError.NO_CALLER, Message.GENERIC, "Invalid color '" + value + "'.");
@@ -84,7 +89,6 @@ public final class GridColorUtils {
 
         static {
             NAMES.put("transparent", GridColor.TRANSPARENT);
-            NAMES.put("NA", GridColor.TRANSPARENT);
             NAMES.put("white", "#FFFFFF");
             NAMES.put("aliceblue", "#F0F8FF");
             NAMES.put("antiquewhite", "#FAEBD7");