diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Unlist.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Unlist.java
index 77f3c42c9f435014999682b20e0e5792010fa625..b48a1b574a0d8b2df50626011dee0964e5ed8cf0 100644
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Unlist.java
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Unlist.java
@@ -1023,7 +1023,7 @@ public abstract class Unlist extends RBuiltinNode.Arg3 {
     private static int unlistValueInt(Object dataAtAsObject) {
         if (dataAtAsObject instanceof RRaw) {
             RRaw rRaw = (RRaw) dataAtAsObject;
-            return RRuntime.raw2int(rRaw);
+            return RRuntime.raw2int(rRaw.getValue());
         } else if (dataAtAsObject instanceof Byte) {
             return RRuntime.logical2int((byte) dataAtAsObject);
         } else {
@@ -1034,7 +1034,7 @@ public abstract class Unlist extends RBuiltinNode.Arg3 {
     private static byte unlistValueLogical(Object dataAtAsObject) {
         if (dataAtAsObject instanceof RRaw) {
             RRaw rRaw = (RRaw) dataAtAsObject;
-            return RRuntime.raw2logical(rRaw);
+            return RRuntime.raw2logical(rRaw.getValue());
         } else {
             return (byte) dataAtAsObject;
         }
diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastDoubleBaseNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastDoubleBaseNode.java
index 15a9514d39ce31cb0f683a2a18472e2e6b626c5b..95fd1191fcdbcd6e966d315ee6365ca154958f89 100644
--- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastDoubleBaseNode.java
+++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastDoubleBaseNode.java
@@ -113,6 +113,6 @@ public abstract class CastDoubleBaseNode extends CastBaseNode {
 
     @Specialization
     protected double doRaw(RRaw operand) {
-        return RRuntime.raw2double(operand);
+        return RRuntime.raw2double(operand.getValue());
     }
 }
diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastDoubleNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastDoubleNode.java
index 485dbd68f372bef7a211e6adaa31ed2049a254a9..ef5078d262fe5c861850108a366bd2f55e6c0f4b 100644
--- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastDoubleNode.java
+++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastDoubleNode.java
@@ -119,7 +119,7 @@ public abstract class CastDoubleNode extends CastDoubleBaseNode {
         if (useClosure()) {
             return (RAbstractDoubleVector) castWithReuse(RType.Double, operand, naProfile.getConditionProfile());
         }
-        return createResultVector(operand, index -> RRuntime.raw2double(operand.getDataAt(index)));
+        return createResultVector(operand, index -> RRuntime.raw2double(operand.getRawDataAt(index)));
     }
 
     @Specialization
diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastIntegerBaseNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastIntegerBaseNode.java
index f2239927848c6102bf34bd31802ae2bd9f7656e6..e339bbce6d11c5a80aefb5fc9c7453ab7eba9f80 100644
--- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastIntegerBaseNode.java
+++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastIntegerBaseNode.java
@@ -115,6 +115,6 @@ public abstract class CastIntegerBaseNode extends CastBaseNode {
 
     @Specialization
     protected int doRaw(RRaw operand) {
-        return RRuntime.raw2int(operand);
+        return RRuntime.raw2int(operand.getValue());
     }
 }
diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastIntegerNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastIntegerNode.java
index 132ddaa3f206dc4287774c7ddb79db2e0aabb203..5e80bbdf7b648c4ae75a2b936c80ff240c27dc11 100644
--- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastIntegerNode.java
+++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastIntegerNode.java
@@ -187,7 +187,7 @@ public abstract class CastIntegerNode extends CastIntegerBaseNode {
         if (useClosure()) {
             return (RAbstractIntVector) castWithReuse(RType.Integer, operand, naProfile.getConditionProfile());
         }
-        return createResultVector(operand, index -> RRuntime.raw2int(operand.getDataAt(index)));
+        return createResultVector(operand, index -> RRuntime.raw2int(operand.getRawDataAt(index)));
     }
 
     @Specialization
diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastLogicalBaseNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastLogicalBaseNode.java
index a01f4bdf4da8befd7a329a43ad79d321ac821dbf..ac3430fad11e70ccea31490611d08f9afc9fbc58 100644
--- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastLogicalBaseNode.java
+++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastLogicalBaseNode.java
@@ -77,6 +77,6 @@ public abstract class CastLogicalBaseNode extends CastBaseNode {
 
     @Specialization
     protected byte doRaw(RRaw operand) {
-        return RRuntime.raw2logical(operand);
+        return RRuntime.raw2logical(operand.getValue());
     }
 }
diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastLogicalNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastLogicalNode.java
index be9c6edda8ea98621c62b4b43e6256f6ac5bcf6d..1d734075f147b55cb99371fe8d2405b1568f6870 100644
--- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastLogicalNode.java
+++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastLogicalNode.java
@@ -144,7 +144,7 @@ public abstract class CastLogicalNode extends CastLogicalBaseNode {
 
     @Specialization
     protected RLogicalVector doRawVectorDims(RRawVector operand) {
-        return createResultVector(operand, index -> RRuntime.raw2logical(operand.getDataAt(index)));
+        return createResultVector(operand, index -> RRuntime.raw2logical(operand.getRawDataAt(index)));
     }
 
     @Specialization
diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/ConvertBooleanNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/ConvertBooleanNode.java
index 29b41d3297e18ed9810fa9a551895735ed04ecef..098e7e4264a4faef4d1161f1bd1d8f88d288ddff 100644
--- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/ConvertBooleanNode.java
+++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/ConvertBooleanNode.java
@@ -117,7 +117,7 @@ public abstract class ConvertBooleanNode extends RNode {
 
     @Specialization
     protected byte doRaw(RRaw value) {
-        return RRuntime.raw2logical(value);
+        return RRuntime.raw2logical(value.getValue());
     }
 
     private void checkLength(RAbstractVector value) {
diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/FirstBooleanNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/FirstBooleanNode.java
index ef815934332625b14ffc8d617b111766db7a9c61..0f79c7a4d6bc1e22801feddcb7f9add2252820d9 100644
--- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/FirstBooleanNode.java
+++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/FirstBooleanNode.java
@@ -98,7 +98,7 @@ public abstract class FirstBooleanNode extends CastNode {
     @Specialization
     protected boolean firstVector(RAbstractRawVector argument) {
         checkLength(argument);
-        return firstScalar(RRuntime.raw2logical(argument.getDataAt(0)));
+        return firstScalar(RRuntime.raw2logical(argument.getRawDataAt(0)));
     }
 
     @Fallback
diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/RRuntime.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/RRuntime.java
index 7e6238657bea5a96785727a90e211156e27b75de..d3965fab24e62015dbb1b7fe3377b7ca5df88c39 100644
--- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/RRuntime.java
+++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/RRuntime.java
@@ -332,23 +332,19 @@ public class RRuntime {
 
     // conversions from raw
 
-    public static byte raw2logical(RRaw value) {
-        return value.getValue() == 0 ? LOGICAL_FALSE : LOGICAL_TRUE;
-    }
-
-    public static int raw2int(RRaw value) {
-        return raw2int(value.getValue());
+    public static byte raw2logical(byte value) {
+        return value == 0 ? LOGICAL_FALSE : LOGICAL_TRUE;
     }
 
     public static int raw2int(byte value) {
         return value & 0xFF;
     }
 
-    public static double raw2double(RRaw value) {
-        return int2double(value.getValue() & 0xFF);
+    public static double raw2double(byte value) {
+        return int2double(value & 0xFF);
     }
 
-    public static RComplex raw2complex(RRaw r) {
+    public static RComplex raw2complex(byte r) {
         return int2complex(raw2int(r));
     }
 
@@ -357,7 +353,7 @@ public class RRuntime {
     }
 
     @TruffleBoundary
-    public static String rawToString(RRaw operand) {
+    public static String rawToString(byte operand) {
         return intToString(raw2int(operand));
     }
 
diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RRaw.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RRaw.java
index b88afcc338f6d90911ef2b781574012345ee81fb..14e0d01fb12cd7f0d54a21ff0668c35526da1aaa 100644
--- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RRaw.java
+++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RRaw.java
@@ -56,7 +56,7 @@ public final class RRaw extends RScalarVector implements RAbstractRawVector {
             case Complex:
                 return RComplex.valueOf(value, 0.0);
             case Character:
-                return RString.valueOf(RRuntime.rawToString(this));
+                return RString.valueOf(RRuntime.rawToString(value));
             default:
                 return null;
         }
diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RRawVector.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RRawVector.java
index 58025d7eb74306155c61ff4958f163c22f495a50..1fe82c7dc8986f2eac91a387ee8dbcfae30c8c01 100644
--- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RRawVector.java
+++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RRawVector.java
@@ -125,7 +125,7 @@ public final class RRawVector extends RVector<byte[]> implements RAbstractRawVec
 
     @Override
     public String toString() {
-        return toString(i -> RRuntime.rawToString(getDataAt(i)));
+        return toString(i -> RRuntime.rawToString(getRawDataAt(i)));
     }
 
     @Override
diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/closures/RToComplexVectorClosure.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/closures/RToComplexVectorClosure.java
index 3932e3c982f38996b40e23e04baf91063b7f6c74..81c0735592ff2585726058b89b78bd4c7bfc3b57 100644
--- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/closures/RToComplexVectorClosure.java
+++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/closures/RToComplexVectorClosure.java
@@ -199,6 +199,6 @@ final class RRawToComplexVectorClosure extends RToComplexVectorClosure implement
 
     @Override
     public RComplex getDataAt(int index) {
-        return RRuntime.raw2complex(vector.getDataAt(index));
+        return RRuntime.raw2complex(vector.getRawDataAt(index));
     }
 }
diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/closures/RToDoubleVectorClosure.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/closures/RToDoubleVectorClosure.java
index 79a57bf9fb9f29b3870406259ebeba2f9302e7ef..5a2c794e023648e1c9e3e7532548e56a138118f0 100644
--- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/closures/RToDoubleVectorClosure.java
+++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/closures/RToDoubleVectorClosure.java
@@ -161,6 +161,6 @@ final class RRawToDoubleVectorClosure extends RToDoubleVectorClosure implements
 
     @Override
     public double getDataAt(int index) {
-        return RRuntime.raw2double(vector.getDataAt(index));
+        return RRuntime.raw2double(vector.getRawDataAt(index));
     }
 }
diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/closures/RToIntVectorClosure.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/closures/RToIntVectorClosure.java
index 6c925729975a0d1b883decff1924b03548041c2a..ef0f7cbe31300137f060243798ebff0697d70564 100644
--- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/closures/RToIntVectorClosure.java
+++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/closures/RToIntVectorClosure.java
@@ -210,6 +210,6 @@ final class RRawToIntVectorClosure extends RToIntVectorClosure implements RAbstr
 
     @Override
     public int getDataAt(int index) {
-        return RRuntime.raw2int(vector.getDataAt(index));
+        return RRuntime.raw2int(vector.getRawDataAt(index));
     }
 }