diff --git a/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/managed/Managed_DownCallNodeFactory.java b/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/managed/Managed_DownCallNodeFactory.java
index 3646e3f426ded191df575aff92e8b05f42ab2cc8..5276e0615970956356027f27cb8ec74fd383ecaf 100644
--- a/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/managed/Managed_DownCallNodeFactory.java
+++ b/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/managed/Managed_DownCallNodeFactory.java
@@ -144,7 +144,7 @@ public final class Managed_DownCallNodeFactory extends DownCallNodeFactory {
                         @TruffleBoundary
                         public Object execute(VirtualFrame frame) {
                             NativeCharArray templateBytes = (NativeCharArray) ForeignAccess.getArguments(frame).get(0);
-                            String template = new String(templateBytes.getValue(), 0, templateBytes.getValue().length - 1);
+                            String template = templateBytes.getString();
                             if (!template.endsWith("XXXXXX")) {
                                 throw new IllegalArgumentException("template must end with XXXXXX");
                             }