diff --git a/dev/core/src/com/google/gwt/dev/jjs/impl/JsInteropRestrictionChecker.java b/dev/core/src/com/google/gwt/dev/jjs/impl/JsInteropRestrictionChecker.java
index 81daede..e917cc9 100644
--- a/dev/core/src/com/google/gwt/dev/jjs/impl/JsInteropRestrictionChecker.java
+++ b/dev/core/src/com/google/gwt/dev/jjs/impl/JsInteropRestrictionChecker.java
@@ -410,6 +410,20 @@
     if (method.isJsMethodVarargs()) {
       checkJsVarargs(method);
     }
+
+    // Check that parameters that are declared JsOptional in overridden methods remain JsOptional.
+    for (JMethod overriddenMethod : method.getOverriddenMethods()) {
+      for (int i = 0; i < overriddenMethod.getParams().size(); i++) {
+        if (overriddenMethod.getParams().get(i).isOptional()) {
+          if (!method.getParams().get(i).isOptional()) {
+            logError(method, "Method %s should declare parameter '%s' as JsOptional",
+                getMemberDescription(method), method.getParams().get(i).getName());
+            return;
+          }
+          break;
+        }
+      }
+    }
   }
 
   private void checkJsVarargs(final JMethod method) {
diff --git a/dev/core/test/com/google/gwt/dev/jjs/impl/JsInteropRestrictionCheckerTest.java b/dev/core/test/com/google/gwt/dev/jjs/impl/JsInteropRestrictionCheckerTest.java
index 3a35948..46028ce 100644
--- a/dev/core/test/com/google/gwt/dev/jjs/impl/JsInteropRestrictionCheckerTest.java
+++ b/dev/core/test/com/google/gwt/dev/jjs/impl/JsInteropRestrictionCheckerTest.java
@@ -1523,6 +1523,21 @@
     assertBuggySucceeds();
   }
 
+  public void testJsOptionalNotJsOptionalOverrideFails() throws Exception {
+    addSnippetImport("jsinterop.annotations.JsMethod");
+    addSnippetImport("jsinterop.annotations.JsOptional");
+    addSnippetClassDecl(
+        "interface Interface {",
+        "   @JsMethod void m(@JsOptional Object o);",
+        "}",
+        "public static class Buggy implements Interface {",
+        "   @JsMethod public void m(Object o) {}",
+        "}");
+
+    assertBuggyFails("Line 9: Method 'void EntryPoint.Buggy.m(Object)' should declare "
+        + "parameter 'o' as JsOptional");
+  }
+
   public void testJsOptionalNotAtEndFails() throws Exception {
     addSnippetImport("jsinterop.annotations.JsConstructor");
     addSnippetImport("jsinterop.annotations.JsMethod");
