diff --git a/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/RAbstractVectorAccessFactory.java b/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/RAbstractVectorAccessFactory.java
index 3b9d9624bc827d2f6ab7300fb7f586d7337c76c0..b878ca95c112d79d574feea756c1e1e9823fdce6 100644
--- a/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/RAbstractVectorAccessFactory.java
+++ b/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/RAbstractVectorAccessFactory.java
@@ -37,6 +37,7 @@ import com.oracle.truffle.api.interop.KeyInfo;
 import com.oracle.truffle.api.interop.Message;
 import com.oracle.truffle.api.interop.TruffleObject;
 import com.oracle.truffle.api.interop.UnknownIdentifierException;
+import com.oracle.truffle.api.interop.UnsupportedMessageException;
 import com.oracle.truffle.api.nodes.Node;
 import com.oracle.truffle.api.nodes.RootNode;
 import com.oracle.truffle.api.profiles.ConditionProfile;
@@ -280,7 +281,11 @@ public final class RAbstractVectorAccessFactory implements Factory26 {
             @Override
             public Object execute(VirtualFrame frame) {
                 RAbstractVector arg = (RAbstractVector) ForeignAccess.getReceiver(frame);
-                return arg.getDataAtAsObject(0);
+                if (arg.getLength() == 1) {
+                    return arg.getDataAtAsObject(0);
+                } else {
+                    throw UnsupportedMessageException.raise(Message.UNBOX);
+                }
             }
         });
     }
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 0b838170299ca9e3e30c0d29566e5432d46939e2..7ab8608b3588f6a60444863dc9c3a53cc8568168 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
@@ -38,6 +38,7 @@ import org.junit.BeforeClass;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
 import org.junit.Test;
 
 public abstract class AbstractMRTest {
@@ -150,11 +151,9 @@ public abstract class AbstractMRTest {
             assertEquals(isBoxed(obj), isBoxed);
             if (isBoxed) {
                 assertEquals(getUnboxed(obj), ForeignAccess.sendUnbox(Message.UNBOX.createNode(), obj));
+            } else {
+                assertInteropException(() -> ForeignAccess.sendUnbox(Message.UNBOX.createNode(), obj), UnsupportedMessageException.class);
             }
-            // else {
-            // assertInteropException(() -> ForeignAccess.sendUnbox(Message.UNBOX.createNode(),
-            // obj), UnsupportedMessageException.class);
-            // }
         }
     }
 
@@ -224,7 +223,13 @@ public abstract class AbstractMRTest {
                 Assert.fail("InteropException was expected but got insteat: " + ex);
             }
         }
-        assertTrue(ie);
+        if (!ie) {
+            if (expectedClazz != null) {
+                Assert.fail(expectedClazz + " was expected");
+            } else {
+                Assert.fail("InteropException was expected");
+            }
+        }
     }
 
 }
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 dd2e5d803965878979f4e5a17da958b69f6c7feb..5020e8fb4b505e5a7a3f448230aa5856b89fb6a6 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
@@ -36,6 +36,7 @@ import com.oracle.truffle.api.interop.UnknownIdentifierException;
 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.model.RAbstractIntVector;
 import com.oracle.truffle.r.runtime.data.model.RAbstractStringVector;
 import com.oracle.truffle.r.runtime.data.model.RAbstractVector;
@@ -92,7 +93,7 @@ public class VectorMRTest extends AbstractMRTest {
 
     @Override
     protected TruffleObject[] createTruffleObjects() throws Exception {
-        return new TruffleObject[]{create("1:10"), create("as.numeric()")};
+        return new TruffleObject[]{RDataFactory.createDoubleVector(new double[]{1}, true), create("c(1:10)"), create("as.numeric()")};
     }
 
     @Override
@@ -105,6 +106,12 @@ public class VectorMRTest extends AbstractMRTest {
         return ((RAbstractVector) obj).getLength() == 1;
     }
 
+    @Override
+    protected Object getUnboxed(TruffleObject obj) {
+        assertTrue(((RAbstractVector) obj).getLength() == 1);
+        return ((RAbstractVector) obj).getDataAtAsObject(0);
+    }
+
     @Override
     protected boolean hasSize(TruffleObject obj) {
         return true;