diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Vector.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Vector.java
index 5736f617e756325463f3b84daf925551432de5d6..c942eacc8a4a562af2a4749cd517b0b1cdb63e8f 100644
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Vector.java
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Vector.java
@@ -47,7 +47,8 @@ public abstract class Vector extends RBuiltinNode {
 
     @Override
     protected void createCasts(CastBuilder casts) {
-        casts.arg("length").asIntegerVector().mustBe(singleElement()).findFirst();
+        casts.arg("mode").defaultError(RError.SHOW_CALLER, RError.Message.INVALID_ARGUMENT, "mode").asStringVector().mustBe(singleElement()).findFirst();
+        casts.arg("length").defaultError(RError.SHOW_CALLER, RError.Message.INVALID_ARGUMENT, "length").asIntegerVector().mustBe(singleElement()).findFirst();
     }
 
     protected RType modeToType(String mode) {
diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_vector.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_vector.java
index 5e7c002f47917a4bb563a2971a52e36a7120e6d1..e218f7e8d356838608ffdff845acebc860915c12 100644
--- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_vector.java
+++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_vector.java
@@ -65,6 +65,11 @@ public class TestBuiltin_vector extends TestBase {
         assertEval("{ vector(\"numeric\", length=4) }");
         assertEval("{ vector(length=3) }");
         assertEval("{ x<-as.vector(3); y<-vector(length=x) }");
+
+        assertEval("{ vector(character()) }");
+        assertEval("{ vector(c(\"numeric\", \"numeric\")) }");
+        assertEval("{  vector(\"numeric\", integer()) }");
+        assertEval("{  vector(\"numeric\", c(7, 42)) }");
     }
 
     @Test