diff --git a/dev/core/src/com/google/gwt/dev/javac/JsniChecker.java b/dev/core/src/com/google/gwt/dev/javac/JsniChecker.java
index 4584aa6..eef261f 100644
--- a/dev/core/src/com/google/gwt/dev/javac/JsniChecker.java
+++ b/dev/core/src/com/google/gwt/dev/javac/JsniChecker.java
@@ -156,7 +156,7 @@
             if (!refErrors.isEmpty()) {
               errors.put(jsniRefString, refErrors);
             }
-          } else {
+          } else if (!jsniRef.className().equals("null")) {
             GWTProblem.recordInCud(ProblemSeverities.Warning, meth, cud,
                 "Referencing class '" + jsniRef.className()
                     + ": unable to resolve class, expect subsequent failures",
diff --git a/dev/core/test/com/google/gwt/dev/javac/JsniCheckerTest.java b/dev/core/test/com/google/gwt/dev/javac/JsniCheckerTest.java
index 5a3e358..5c2fa62 100644
--- a/dev/core/test/com/google/gwt/dev/javac/JsniCheckerTest.java
+++ b/dev/core/test/com/google/gwt/dev/javac/JsniCheckerTest.java
@@ -223,6 +223,28 @@
         "Referencing method 'Buggy.m': return type 'long' is not safe to access in JSNI code");
   }
 
+  public void testNullField() {
+    StringBuffer code = new StringBuffer();
+    code.append("class Buggy {\n");
+    code.append("  static native Object main() /*-{\n");
+    code.append("    return @null::nullField;\n");
+    code.append("  }-*/;\n");
+    code.append("}\n");
+
+    shouldGenerateNoWarning(code);
+  }
+
+  public void testNullMethod() {
+    StringBuffer code = new StringBuffer();
+    code.append("class Buggy {\n");
+    code.append("  static native Object main() /*-{\n");
+    code.append("    return @null::nullMethod()();\n");
+    code.append("  }-*/;\n");
+    code.append("}\n");
+
+    shouldGenerateNoWarning(code);
+  }
+
   public void testOverloadedMethodWithNoWarning() {
     StringBuffer code = new StringBuffer();
     code.append("class Buggy {\n");
@@ -380,6 +402,10 @@
     shouldGenerateError(code, extraCode, -1, null);
   }
 
+  private void shouldGenerateNoWarning(CharSequence code) {
+    shouldGenerateWarning(code, -1, null);
+  }
+
   private void shouldGenerateWarning(CharSequence buggyCode,
       CharSequence extraCode, int line, String message) {
     shouldGenerate(buggyCode, extraCode, line, TreeLogger.WARN, "Warnings",
