diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/AbstractMRTest.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/AbstractMRTest.java
index 45008be104c4d2adfb65bbbe0a174ed2fd1fb3f4..3454f3d7ba20a1cf4e18f8cd0aff8b9712811f65 100644
--- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/AbstractMRTest.java
+++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/AbstractMRTest.java
@@ -91,6 +91,10 @@ public abstract class AbstractMRTest {
         return false;
     }
 
+    protected boolean testToNative(TruffleObject obj) {
+        return true;
+    }
+
     protected int getSize(@SuppressWarnings("unused") TruffleObject obj) {
         throw new UnsupportedOperationException("override if hasSize returns true");
     }
@@ -123,6 +127,9 @@ public abstract class AbstractMRTest {
     @Test
     public void testNativePointer() throws Exception {
         for (TruffleObject obj : createTruffleObjects()) {
+            if (!testToNative(obj)) {
+                continue;
+            }
             try {
                 assertTrue(obj.getClass().getSimpleName(), ForeignAccess.sendToNative(Message.TO_NATIVE.createNode(), obj) == obj);
             } catch (UnsupportedMessageException unsupportedMessageException) {
diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/RInteropScalarMRTest.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/RInteropScalarMRTest.java
index fbbcd375cc9765f0ccca69862527eacc5a4cc9d0..7f4d397cc389a4befc9e5744089326c739c8644b 100644
--- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/RInteropScalarMRTest.java
+++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/RInteropScalarMRTest.java
@@ -26,13 +26,13 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
+import org.junit.Assert;
 import org.junit.Test;
 
 import com.oracle.truffle.api.interop.ForeignAccess;
 import com.oracle.truffle.api.interop.Message;
 import com.oracle.truffle.api.interop.TruffleObject;
 import com.oracle.truffle.r.runtime.data.RInteropScalar;
-import org.junit.Assert;
 
 public class RInteropScalarMRTest extends AbstractMRTest {
 
@@ -67,6 +67,11 @@ public class RInteropScalarMRTest extends AbstractMRTest {
         return true;
     }
 
+    @Override
+    protected boolean isPointer(TruffleObject obj) {
+        return false;
+    }
+
     @Override
     protected Object getUnboxed(TruffleObject obj) {
         RInteropScalar is = (RInteropScalar) obj;
diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/VectorMRTest.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/VectorMRTest.java
index 5020e8fb4b505e5a7a3f448230aa5856b89fb6a6..bf7b4926955fd311f382f063bc3d9a1500c0ec2c 100644
--- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/VectorMRTest.java
+++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/VectorMRTest.java
@@ -37,6 +37,8 @@ import com.oracle.truffle.api.interop.UnsupportedMessageException;
 import com.oracle.truffle.api.interop.java.JavaInterop;
 import com.oracle.truffle.api.source.Source;
 import com.oracle.truffle.r.runtime.data.RDataFactory;
+import com.oracle.truffle.r.runtime.data.RObject;
+import com.oracle.truffle.r.runtime.data.RVector;
 import com.oracle.truffle.r.runtime.data.model.RAbstractIntVector;
 import com.oracle.truffle.r.runtime.data.model.RAbstractStringVector;
 import com.oracle.truffle.r.runtime.data.model.RAbstractVector;
@@ -101,6 +103,11 @@ public class VectorMRTest extends AbstractMRTest {
         return create("as.numeric()");
     }
 
+    @Override
+    protected boolean testToNative(TruffleObject obj) {
+        return obj instanceof RObject;
+    }
+
     @Override
     protected boolean isBoxed(TruffleObject obj) {
         return ((RAbstractVector) obj).getLength() == 1;
@@ -122,6 +129,11 @@ public class VectorMRTest extends AbstractMRTest {
         return ((RAbstractVector) obj).getLength();
     }
 
+    @Override
+    protected boolean isPointer(TruffleObject obj) {
+        return obj instanceof RVector<?>;
+    }
+
     private static TruffleObject create(String createTxt) throws Exception {
         Source src = Source.newBuilder(createTxt).mimeType("text/x-r").name("test.R").build();
         return engine.eval(src).as(RAbstractVector.class);