diff --git a/com.oracle.truffle.r.native/fficall/jni/src/rffiutils.c b/com.oracle.truffle.r.native/fficall/jni/src/rffiutils.c
index 1dffea84bdb39b507ec6b35a660ae25387b7a8fb..346ba55cf2530c64bde446618e5c2525e4192932 100644
--- a/com.oracle.truffle.r.native/fficall/jni/src/rffiutils.c
+++ b/com.oracle.truffle.r.native/fficall/jni/src/rffiutils.c
@@ -99,7 +99,7 @@ void callExit(JNIEnv *env) {
 	for (i = 0; i < copiedVectorsIndex; i++) {
 		CopiedVector cv = copiedVectors[i];
 		switch (cv.type) {
-		    case INTSXP: {
+		    case INTSXP: case LGLSXP: {
 			    jintArray intArray = (jintArray) cv.jArray;
 			    (*env)->ReleaseIntArrayElements(env, intArray, (jint *)cv.data, 0);
 			    break;
@@ -112,7 +112,7 @@ void callExit(JNIEnv *env) {
 
 		    }
 
-		    case LGLSXP: case RAWSXP: {
+		    case RAWSXP: {
 			    jbyteArray byteArray = (jbyteArray) cv.jArray;
 			    (*env)->ReleaseByteArrayElements(env, byteArray, (jbyte *)cv.data, 0);
 			    break;