diff --git a/com.oracle.truffle.r.runtime.ffi/src/com/oracle/truffle/r/runtime/ffi/jnr/CallRFFIHelper.java b/com.oracle.truffle.r.runtime.ffi/src/com/oracle/truffle/r/runtime/ffi/jnr/CallRFFIHelper.java
index bfd974db7a42a02d6a8a4ea46593adcad45234a6..4d10be2c98af2691e50e79f7deb0a63cd06b192a 100644
--- a/com.oracle.truffle.r.runtime.ffi/src/com/oracle/truffle/r/runtime/ffi/jnr/CallRFFIHelper.java
+++ b/com.oracle.truffle.r.runtime.ffi/src/com/oracle/truffle/r/runtime/ffi/jnr/CallRFFIHelper.java
@@ -481,8 +481,10 @@ public class CallRFFIHelper {
         return cdr;
     }
 
-    static Object CADR(@SuppressWarnings("unused") Object x) {
-        throw unimplemented();
+    static Object CADR(Object e) {
+        guaranteeInstanceOf(e, RPairList.class);
+        Object cadr = ((RPairList) e).cadr();
+        return cadr;
     }
 
     static Object SETCAR(Object x, Object y) {