diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Match.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Match.java
index d91a69d472cc324be1470c4a9d67f911ecdc521b..c4215fed43824307e94a01a99e52327ffe4ae705 100644
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Match.java
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Match.java
@@ -100,6 +100,18 @@ public abstract class Match extends RBuiltinNode {
         return matchRecursive(frame, RClosures.createFactorToVector(x, true, attrProfiles), RClosures.createFactorToVector(table, true, attrProfiles), nomatchObj, incomparables);
     }
 
+    @Specialization
+    protected RIntVector match(VirtualFrame frame, RFactor x, RAbstractVector table, Object nomatchObj, Object incomparables) {
+        naCheck.enable(x.getVector());
+        return matchRecursive(frame, RClosures.createFactorToVector(x, true, attrProfiles), table, nomatchObj, incomparables);
+    }
+
+    @Specialization
+    protected RIntVector match(VirtualFrame frame, RAbstractVector x, RFactor table, Object nomatchObj, Object incomparables) {
+        naCheck.enable(table.getVector());
+        return matchRecursive(frame, x, RClosures.createFactorToVector(table, true, attrProfiles), nomatchObj, incomparables);
+    }
+
     @Specialization
     @SuppressWarnings("unused")
     protected RIntVector match(RAbstractIntVector x, RAbstractIntVector table, Object nomatchObj, Object incomparables) {
diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/library/base/TestSimpleBuiltins.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/library/base/TestSimpleBuiltins.java
index 4ae5d6ff6c62629dedaf8745c426a5d70c093e43..ef0ff6226c932c6f93c23fe80e6bbc0ffc2dde8f 100644
--- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/library/base/TestSimpleBuiltins.java
+++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/library/base/TestSimpleBuiltins.java
@@ -3176,6 +3176,9 @@ public class TestSimpleBuiltins extends TestBase {
         assertEval("{ match(c(0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,NaN,NA,1), c(1,NA,NaN,1,2,3,4,5,6,7,8,9,10,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9)) }");
 
         assertEval("{ match(factor(c(\"a\", \"b\")), factor(c(\"c\", \"b\", \"a\", \"b\", \"c\", \"a\"))) }");
+
+        assertEval("{ match(\"a\", factor(c(\"a\", \"b\", \"a\"))) }");
+        assertEval("{ match(factor(c(\"a\", \"b\", \"a\")), \"a\") }");
     }
 
     @Test