diff --git a/com.oracle.truffle.r.native/fficall/src/common/Rinternals_common.c b/com.oracle.truffle.r.native/fficall/src/common/Rinternals_common.c
index b4c88dff801bb60a539fdf0415e6e698ed2209e4..db517f214df9efa9a74ba59adb4ef0b0d1d134d1 100644
--- a/com.oracle.truffle.r.native/fficall/src/common/Rinternals_common.c
+++ b/com.oracle.truffle.r.native/fficall/src/common/Rinternals_common.c
@@ -111,6 +111,8 @@ void *DATAPTR(SEXP x) {
 		return REAL(x);
 	} else if (type == LGLSXP) {
 		return LOGICAL(x);
+	} else if (type == RAWSXP) {
+		return RAW(x);
 	} else {
 		printf("DATAPTR %d\n", type);
 		unimplemented("R_DATAPTR");
diff --git a/com.oracle.truffle.r.native/fficall/src/common/unimplemented.c b/com.oracle.truffle.r.native/fficall/src/common/unimplemented.c
index 4dbe601ee0e0828bf610d94431bff830a46a6e3e..718838dbdddc7dd888eb27d0c1915723f4504652 100644
--- a/com.oracle.truffle.r.native/fficall/src/common/unimplemented.c
+++ b/com.oracle.truffle.r.native/fficall/src/common/unimplemented.c
@@ -75,6 +75,13 @@ addInputHandler(InputHandler *handlers, int fd, InputHandlerProc handler,
     return NULL;
 }
 
+int
+removeInputHandler(InputHandler **handlers, InputHandler *it)
+{
+    unimplemented("removeInputHandler");
+    return NULL;
+}
+
 void setup_RdotApp(void) {
 	unimplemented("setup_RdotApp");
 }
diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/AsFunction.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/AsFunction.java
index 6f9d7397c1b608445af908913e2243fe6c0ff088..f996bc6bb45487328c1a51db140550f3f37c045a 100644
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/AsFunction.java
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/AsFunction.java
@@ -129,7 +129,7 @@ public abstract class AsFunction extends RBuiltinNode.Arg2 {
         RBaseNode body;
         Object bodyObject = x.getDataAtAsObject(x.getLength() - 1);
         if (bodyObject instanceof RLanguage) {
-            body = ((RLanguage) x.getDataAtAsObject(x.getLength() - 1)).getRep();
+            body = (RBaseNode) RContext.getASTBuilder().process(((RLanguage) x.getDataAtAsObject(x.getLength() - 1)).getRep().asRSyntaxNode());
         } else if (bodyObject instanceof RSymbol) {
             body = RContext.getASTBuilder().lookup(RSyntaxNode.LAZY_DEPARSE, ((RSymbol) bodyObject).getName(), false).asRNode();
         } else {