diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/DynLoadFunctions.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/DynLoadFunctions.java
index fc30f993f4d11c05c2f0cbaa351708e97e62e848..fe506622b94dd7967cbb83bee1f7644b6f9ec952 100644
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/DynLoadFunctions.java
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/DynLoadFunctions.java
@@ -73,10 +73,10 @@ public class DynLoadFunctions {
     public abstract static class DynUnload extends RInvisibleBuiltinNode {
         @Specialization
         @TruffleBoundary
-        protected RNull doDynunload(String lib) {
+        protected RNull doDynunload(RAbstractStringVector lib) {
             controlVisibility();
             try {
-                DLL.unload(lib);
+                DLL.unload(lib.getDataAt(0));
             } catch (DLLException ex) {
                 throw RError.error(this, ex);
             }