diff --git a/user/super/com/google/gwt/emul/java/lang/String.java b/user/super/com/google/gwt/emul/java/lang/String.java
index 18bd4c0..2489238 100644
--- a/user/super/com/google/gwt/emul/java/lang/String.java
+++ b/user/super/com/google/gwt/emul/java/lang/String.java
@@ -410,7 +410,7 @@
   public boolean equals(Object other) {
     // Java equality is translated into triple equality which is a quick to compare strings for
     // equality without any instanceOf checks.
-    return this == other;
+    return checkNotNull(this) == other;
   }
 
   public boolean equalsIgnoreCase(String other) {
diff --git a/user/test/com/google/gwt/emultest/java/lang/StringTest.java b/user/test/com/google/gwt/emultest/java/lang/StringTest.java
index 5ed47ee..48194ef 100644
--- a/user/test/com/google/gwt/emultest/java/lang/StringTest.java
+++ b/user/test/com/google/gwt/emultest/java/lang/StringTest.java
@@ -351,8 +351,6 @@
     assertTrue(hideFromCompiler("").equals(""));
     assertFalse(hideFromCompiler("").equals(null));
 
-    // TODO: String.equals does not have NPE check
-/*
     try {
       returnNull().equals("other");
       fail();
@@ -370,7 +368,6 @@
     } catch (JavaScriptException e) {
       // expected
     }
-*/
   }
 
   public void testEqualsIgnoreCase() {
