diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/ExpectedTestOutput.test b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/ExpectedTestOutput.test
index 68c0f9b81be958762a9e3d56baf9cc788e57433e..9077e094237b6506c1324fd97ddd554b386c8e36 100644
--- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/ExpectedTestOutput.test
+++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/ExpectedTestOutput.test
@@ -77543,6 +77543,46 @@ Error in vector(character()) : invalid 'mode' argument
 ##com.oracle.truffle.r.test.builtins.TestBuiltin_vector.testVectorConstructor#
 #{ x<-as.vector(3); y<-vector(length=x) }
 
+##com.oracle.truffle.r.test.builtins.TestBuiltin_vector.testVectorNASubscript#
+#v <- as.integer(c(1, 2)); v[1]<-NA_integer_; v
+[1] NA  2
+
+##com.oracle.truffle.r.test.builtins.TestBuiltin_vector.testVectorNASubscript#
+#v <- as.integer(c(1, 2, 3, 4)); dim(v)<-c(2,2); v[1, 1]<-NA_integer_; v
+     [,1] [,2]
+[1,]   NA    3
+[2,]    2    4
+
+##com.oracle.truffle.r.test.builtins.TestBuiltin_vector.testVectorNASubscript#
+#v <- c('a', 'b'); v[1]<-NA_character_; v
+[1] NA  "b"
+
+##com.oracle.truffle.r.test.builtins.TestBuiltin_vector.testVectorNASubscript#
+#v <- c('a', 'b', 'c', 'd'); dim(v)<-c(2,2); v[1, 1]<-NA_character_; v
+     [,1] [,2]
+[1,] NA   "c"
+[2,] "b"  "d"
+
+##com.oracle.truffle.r.test.builtins.TestBuiltin_vector.testVectorNASubscript#
+#v <- c(1, 2); v[1]<-NA_integer_; v
+[1] NA  2
+
+##com.oracle.truffle.r.test.builtins.TestBuiltin_vector.testVectorNASubscript#
+#v <- c(1, 2); v[1]<-NA_real_; v
+[1] NA  2
+
+##com.oracle.truffle.r.test.builtins.TestBuiltin_vector.testVectorNASubscript#
+#v <- c(1, 2, 3, 4); dim(v)<-c(2,2); v[1, 1]<-NA_integer_; v
+     [,1] [,2]
+[1,]   NA    3
+[2,]    2    4
+
+##com.oracle.truffle.r.test.builtins.TestBuiltin_vector.testVectorNASubscript#
+#v <- c(1, 2, 3, 4); dim(v)<-c(2,2); v[1, 1]<-NA_real_; v
+     [,1] [,2]
+[1,]   NA    3
+[2,]    2    4
+
 ##com.oracle.truffle.r.test.builtins.TestBuiltin_vector.testVectorWithPairlist#
 #vector('pairlist', 0)
 NULL
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 e218f7e8d356838608ffdff845acebc860915c12..bd5cb7aa15f2b5656ea65350f365e76eb82c3e04 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
@@ -4,7 +4,7 @@
  * http://www.gnu.org/licenses/gpl-2.0.html
  *
  * Copyright (c) 2012-2014, Purdue University
- * Copyright (c) 2013, 2016, Oracle and/or its affiliates
+ * Copyright (c) 2013, 2017, Oracle and/or its affiliates
  *
  * All rights reserved.
  */
@@ -77,4 +77,17 @@ public class TestBuiltin_vector extends TestBase {
         assertEval("vector('pairlist', 0)");
         assertEval("vector('pairlist', 3)");
     }
+
+    @Test
+    public void testVectorNASubscript() {
+        assertEval("v <- as.integer(c(1, 2)); v[1]<-NA_integer_; v");
+        assertEval("v <- c(1, 2); v[1]<-NA_real_; v");
+        assertEval("v <- c('a', 'b'); v[1]<-NA_character_; v");
+        assertEval("v <- c(1, 2); v[1]<-NA_integer_; v");
+
+        assertEval("v <- as.integer(c(1, 2, 3, 4)); dim(v)<-c(2,2); v[1, 1]<-NA_integer_; v");
+        assertEval("v <- c(1, 2, 3, 4); dim(v)<-c(2,2); v[1, 1]<-NA_real_; v");
+        assertEval("v <- c('a', 'b', 'c', 'd'); dim(v)<-c(2,2); v[1, 1]<-NA_character_; v");
+        assertEval("v <- c(1, 2, 3, 4); dim(v)<-c(2,2); v[1, 1]<-NA_integer_; v");
+    }
 }