diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/IsTypeFunctions.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/IsTypeFunctions.java
index ee53ad4ccb06eae03887b1328a78b5b9dcc0102b..1c8e9a467c3778ce3db3195961695c17e40ca341 100644
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/IsTypeFunctions.java
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/IsTypeFunctions.java
@@ -181,7 +181,7 @@ public class IsTypeFunctions {
     public abstract static class IsCall extends MissingAdapter {
 
         static {
-            createCasts(IsCall.class);
+            Casts.noCasts(IsCall.class);
         }
 
         @Specialization
@@ -189,7 +189,7 @@ public class IsTypeFunctions {
             return RRuntime.LOGICAL_TRUE;
         }
 
-        @Specialization(guards = {"!isRMissing(value)", "!isRLanguage(value)"})
+        @Specialization(guards = {"!isRLanguage(value)"})
         protected byte isType(@SuppressWarnings("unused") Object value) {
             return RRuntime.LOGICAL_FALSE;
         }
diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/RASTUtils.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/RASTUtils.java
index 9da8ce68695ead7c1ebb05744c86ed5ace4e34ca..5d556ba0bbbeda8b73eb0074c65075ebdc423497 100644
--- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/RASTUtils.java
+++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/RASTUtils.java
@@ -133,7 +133,7 @@ public final class RASTUtils {
         assert element != null;
         if (element instanceof RSyntaxConstant) {
             Object value = ((RSyntaxConstant) element).getValue();
-            if (value == RMissing.instance || value == REmpty.instance) {
+            if (value == RMissing.instance) {
                 // special case which GnuR handles as an unnamed symbol
                 return RSymbol.MISSING;
             }
diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/ExpectedTestOutput.test b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/ExpectedTestOutput.test
index 51ba1df38426317fe19967544c8ec62313748c01..2a5c05f9d5f5e7d081d06d50d2491a96819121dc 100644
--- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/ExpectedTestOutput.test
+++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/ExpectedTestOutput.test
@@ -46627,10 +46627,6 @@ Error in .primUntrace(42) : argument must be a function
 #{  x<-c(11, 7, 2222, 7, 33); print(x,quote=TRUE) }
 [1]   11    7 2222    7   33
 
-##com.oracle.truffle.r.test.builtins.TestBuiltin_print.testPrint#
-#{ callExpr <- quote(a[,2]); res <- lapply(callExpr, function(x) x); print(res[[3]]) }
-
-
 ##com.oracle.truffle.r.test.builtins.TestBuiltin_print.testPrint#
 #{ n <- 17 ; fac <- factor(rep(1:3, length = n), levels = 1:5) ; y<-tapply(1:n, fac, sum); y }
  1  2  3  4  5
@@ -47889,6 +47885,10 @@ Error in quote() : 0 arguments passed to 'quote' which requires 1
 #quote(expr=)
 
 
+##com.oracle.truffle.r.test.builtins.TestBuiltin_quote.testQuote#Ignored.ImplementationError#
+#typeof(quote(a[,2])[[3]])
+[1] "symbol"
+
 ##com.oracle.truffle.r.test.builtins.TestBuiltin_quote.testQuote#
 #{ class(quote(x + y)) }
 [1] "call"
@@ -47935,6 +47935,10 @@ list(1, 2)
 #{ quote(x <- x + 1) }
 x <- x + 1
 
+##com.oracle.truffle.r.test.builtins.TestBuiltin_quote.testQuote#Ignored.ImplementationError#
+#{ res <- quote(a[,2])[[3]]; typeof(res) }
+Error in typeof(res) : argument "res" is missing, with no default
+
 ##com.oracle.truffle.r.test.builtins.TestBuiltin_quote.testQuote#
 #{ typeof(quote(1)) }
 [1] "double"
diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_print.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_print.java
index 082ed5dee16c00b6eac3e0c2b38c97215ec46825..4cbcb19b59ac5316b85feda8637ff7ec7aa44b43 100644
--- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_print.java
+++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_print.java
@@ -72,6 +72,5 @@ public class TestBuiltin_print extends TestBase {
         assertEval("{ nql <- noquote(letters); nql}");
         assertEval("{ x <- 42; attr(x,'myattr') <- list(k=3); attributes(x) }");
         assertEval("{ val <- 42L; attr(val, 'contrast') <- list(k=1); qr <- list(qr=val); qr }");
-        assertEval("{ callExpr <- quote(a[,2]); res <- lapply(callExpr, function(x) x); print(res[[3]]) }");
     }
 }
diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_quote.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_quote.java
index 2eeee8079985c3634978268e7e77c3010d67cfdf..014088dfd5a3f4d81b6a4a3abb9cd6b3ffb733dc 100644
--- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_quote.java
+++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_quote.java
@@ -45,5 +45,8 @@ public class TestBuiltin_quote extends TestBase {
         // in GNUR, these behave inconsistently:
         assertEval(Ignored.ImplementationError, "quote()");
         assertEval("quote(expr=)");
+
+        assertEval(Ignored.ImplementationError, "typeof(quote(a[,2])[[3]])");
+        assertEval(Ignored.ImplementationError, "{ res <- quote(a[,2])[[3]]; typeof(res) }");
     }
 }