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 5d556ba0bbbeda8b73eb0074c65075ebdc423497..9da8ce68695ead7c1ebb05744c86ed5ace4e34ca 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) {
+            if (value == RMissing.instance || value == REmpty.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 06d54805ff27dfbfbc043ccfef202f211626b0d3..51ba1df38426317fe19967544c8ec62313748c01 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
@@ -29806,6 +29806,21 @@ character(0)
 #argv <- list(structure(c(TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, TRUE), .Names = c('1', '2', '3', '4', '5', '6', '7', '8')));is.atomic(argv[[1]]);
 [1] TRUE
 
+##com.oracle.truffle.r.test.builtins.TestBuiltin_iscall.testIsCall#
+#{ callExpr <- quote(asd[,1]); lapply(callExpr, function(x) is.call(x)) }
+[[1]]
+[1] FALSE
+
+[[2]]
+[1] FALSE
+
+[[3]]
+[1] FALSE
+
+[[4]]
+[1] FALSE
+
+
 ##com.oracle.truffle.r.test.builtins.TestBuiltin_iscall.testIsCall#
 #{ cl <- call("f") ; is.call(cl) }
 [1] TRUE
@@ -46612,6 +46627,10 @@ 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
diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_iscall.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_iscall.java
index 3284783f60a7c80fdf8cbd61c6fae9af3e5ee2f1..f240e1d164db7c3e1fa62d253e4a37e602503cec 100644
--- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_iscall.java
+++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_iscall.java
@@ -148,5 +148,6 @@ public class TestBuiltin_iscall extends TestBase {
         assertEval("{ cl <- call(\"f\", 2, 3) ; is.call(cl) }");
         assertEval("{ cl <- list(f, 2, 3) ; is.call(cl) }");
         assertEval("{ is.call(call) }");
+        assertEval("{ callExpr <- quote(asd[,1]); lapply(callExpr, function(x) is.call(x)) }");
     }
 }
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 4cbcb19b59ac5316b85feda8637ff7ec7aa44b43..082ed5dee16c00b6eac3e0c2b38c97215ec46825 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,5 +72,6 @@ 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]]) }");
     }
 }