diff --git a/user/src/com/google/gwt/user/client/impl/DOMImplMozilla.java b/user/src/com/google/gwt/user/client/impl/DOMImplMozilla.java
index 9441a9c..b5c51b1 100644
--- a/user/src/com/google/gwt/user/client/impl/DOMImplMozilla.java
+++ b/user/src/com/google/gwt/user/client/impl/DOMImplMozilla.java
@@ -26,6 +26,7 @@
     addMozillaCaptureEventDispatchers();
   }
 
+  @SuppressWarnings("deprecation")
   private static native void addMozillaCaptureEventDispatchers() /*-{
     @com.google.gwt.user.client.impl.DOMImplStandard::captureEventDispatchers['DOMMouseScroll'] =
         @com.google.gwt.user.client.impl.DOMImplStandard::dispatchCapturedMouseEvent(*);
@@ -50,6 +51,7 @@
     initSyntheticMouseUpEvents();
   }
 
+  @SuppressWarnings("deprecation")
   private native void initSyntheticMouseUpEvents() /*-{
     $wnd.addEventListener(
       'mouseout',
diff --git a/user/src/com/google/gwt/user/client/impl/DOMImplStandard.java b/user/src/com/google/gwt/user/client/impl/DOMImplStandard.java
index f16659f..d0176f4 100644
--- a/user/src/com/google/gwt/user/client/impl/DOMImplStandard.java
+++ b/user/src/com/google/gwt/user/client/impl/DOMImplStandard.java
@@ -245,6 +245,7 @@
     foreach(captureEvents, function(e, fn) { $wnd.addEventListener(e, fn, true); });
   }-*/;
 
+  @SuppressWarnings("deprecation")
   protected native void sinkBitlessEventImpl(Element elem, String eventTypeName) /*-{
     var dispatchMap = @com.google.gwt.user.client.impl.DOMImplStandard::bitlessEventDispatchers;
     var dispatcher = dispatchMap[eventTypeName] || dispatchMap['_default_'];
@@ -355,6 +356,7 @@
     }
   }
 
+  @SuppressWarnings("deprecation")
   private static native EventMap getBitlessEventDispatchers() /*-{
     return {
       _default_: @com.google.gwt.user.client.impl.DOMImplStandard::dispatchEvent(*),
@@ -363,6 +365,7 @@
     };
   }-*/;
 
+  @SuppressWarnings("deprecation")
   private static native EventMap getCaptureEventDispatchers() /*-{
     return {
       // Mouse events
diff --git a/user/src/com/google/gwt/user/client/ui/impl/RichTextAreaImplMozilla.java b/user/src/com/google/gwt/user/client/ui/impl/RichTextAreaImplMozilla.java
index fe3bbcb..72ff98c 100644
--- a/user/src/com/google/gwt/user/client/ui/impl/RichTextAreaImplMozilla.java
+++ b/user/src/com/google/gwt/user/client/ui/impl/RichTextAreaImplMozilla.java
@@ -32,6 +32,7 @@
   }
 
   @Override
+  @SuppressWarnings("deprecation")
   public native void initElement() /*-{
     // Mozilla doesn't allow designMode to be set reliably until the iframe is
     // fully loaded.
diff --git a/user/src/com/google/gwt/user/client/ui/impl/RichTextAreaImplStandard.java b/user/src/com/google/gwt/user/client/ui/impl/RichTextAreaImplStandard.java
index 7160ad3..9a74e71 100644
--- a/user/src/com/google/gwt/user/client/ui/impl/RichTextAreaImplStandard.java
+++ b/user/src/com/google/gwt/user/client/ui/impl/RichTextAreaImplStandard.java
@@ -94,6 +94,7 @@
   }
 
   @Override
+  @SuppressWarnings("deprecation")
   public native void initElement()  /*-{
     // Most browsers don't like setting designMode until slightly _after_
     // the iframe becomes attached to the DOM. Any non-zero timeout will do
diff --git a/user/src/com/google/gwt/xml/client/impl/XMLParserImplSafari.java b/user/src/com/google/gwt/xml/client/impl/XMLParserImplSafari.java
index dd7dfd4..5d8768f 100644
--- a/user/src/com/google/gwt/xml/client/impl/XMLParserImplSafari.java
+++ b/user/src/com/google/gwt/xml/client/impl/XMLParserImplSafari.java
@@ -69,6 +69,7 @@
    * @return parsed JavaScript object
    * @see com.google.gwt.xml.client.impl.XMLParserImpl#parseImpl(java.lang.String)
    */
+  @SuppressWarnings("deprecation")
   @Override
   protected native JavaScriptObject parseImpl(String contents) /*-{
     var domParser =
