diff --git a/src/jni_internal.cc b/src/jni_internal.cc
index 9936f25..82c120c 100644
--- a/src/jni_internal.cc
+++ b/src/jni_internal.cc
@@ -1837,9 +1837,6 @@
 
   static jstring NewString(JNIEnv* env, const jchar* chars, jsize char_count) {
     ScopedJniThreadState ts(env);
-    if (chars == NULL && char_count == 0) {
-      return NULL;
-    }
     String* result = String::AllocFromUtf16(char_count, chars);
     return AddLocalReference<jstring>(env, result);
   }
diff --git a/src/jni_internal_test.cc b/src/jni_internal_test.cc
index 18d8e0a..f03dbb3 100644
--- a/src/jni_internal_test.cc
+++ b/src/jni_internal_test.cc
@@ -7,6 +7,7 @@
 #include <cmath>
 
 #include "common_test.h"
+#include "gtest/gtest-death-test.h"
 #include "ScopedLocalRef.h"
 
 namespace art {
@@ -484,8 +485,6 @@
 }
 
 TEST_F(JniInternalTest, NewString) {
-  EXPECT_TRUE(env_->NewString(NULL, 0) == NULL);
-
   jchar chars[] = { 'h', 'i' };
   jstring s;
   s = env_->NewString(chars, 0);
@@ -500,6 +499,16 @@
   // TODO: check some non-ASCII strings.
 }
 
+TEST_F(JniInternalTest, NewStringNullCharsZeroLength) {
+  jstring s = env_->NewString(NULL, 0);
+  EXPECT_TRUE(s != NULL);
+  EXPECT_EQ(0, env_->GetStringLength(s));
+}
+
+TEST_F(JniInternalTest, NewStringNullCharsNonzeroLength) {
+  ASSERT_DEATH(env_->NewString(NULL, 1), "");
+}
+
 TEST_F(JniInternalTest, GetStringLength_GetStringUTFLength) {
   // Already tested in the NewString/NewStringUTF tests.
 }
diff --git a/src/object.cc b/src/object.cc
index 27cbb41..49ba5a3 100644
--- a/src/object.cc
+++ b/src/object.cc
@@ -1377,6 +1377,7 @@
 String* String::AllocFromUtf16(int32_t utf16_length,
                                const uint16_t* utf16_data_in,
                                int32_t hash_code) {
+  CHECK(utf16_data_in != NULL || utf16_length == 0);
   String* string = Alloc(GetJavaLangString(), utf16_length);
   if (string == NULL) {
     return NULL;
