diff --git a/pom.xml b/pom.xml
index 0463acd..e1ba6da 100644
--- a/pom.xml
+++ b/pom.xml
@@ -253,7 +253,7 @@
   </licenses>
 
   <properties>
-    <gwtVersion>2.1.1</gwtVersion>
+    <gwtVersion>2.3.0</gwtVersion>
     <project.build.sourceEncoding>
       UTF-8
     </project.build.sourceEncoding>
diff --git a/src/main/java/com/google/gwtexpui/clippy/client/CopyableLabel.java b/src/main/java/com/google/gwtexpui/clippy/client/CopyableLabel.java
index cc8c05f..4393583 100644
--- a/src/main/java/com/google/gwtexpui/clippy/client/CopyableLabel.java
+++ b/src/main/java/com/google/gwtexpui/clippy/client/CopyableLabel.java
@@ -15,6 +15,7 @@
 package com.google.gwtexpui.clippy.client;
 
 import com.google.gwt.core.client.GWT;
+import com.google.gwt.core.client.Scheduler;
 import com.google.gwt.event.dom.client.BlurEvent;
 import com.google.gwt.event.dom.client.BlurHandler;
 import com.google.gwt.event.dom.client.ClickEvent;
@@ -24,7 +25,6 @@
 import com.google.gwt.http.client.URL;
 import com.google.gwt.user.client.Command;
 import com.google.gwt.user.client.DOM;
-import com.google.gwt.user.client.DeferredCommand;
 import com.google.gwt.user.client.Element;
 import com.google.gwt.user.client.ui.Composite;
 import com.google.gwt.user.client.ui.FlowPanel;
@@ -128,7 +128,7 @@
 
   private void embedMovie() {
     if (flashEnabled && UserAgent.hasFlash) {
-      final String flashVars = "text=" + URL.encodeComponent(getText());
+      final String flashVars = "text=" + URL.encodeQueryString(getText());
       final SafeHtmlBuilder h = new SafeHtmlBuilder();
 
       h.openElement("span");
@@ -189,7 +189,7 @@
             switch (event.getCharCode()) {
               case 'c':
               case 'x':
-                DeferredCommand.addCommand(new Command() {
+                Scheduler.get().scheduleDeferred(new Command() {
                   public void execute() {
                     hideTextBox();
                   }
@@ -210,7 +210,7 @@
 
     textLabel.setVisible(false);
     textBox.setVisible(true);
-    DeferredCommand.addCommand(new Command() {
+    Scheduler.get().scheduleDeferred(new Command() {
       @Override
       public void execute() {
         textBox.selectAll();
diff --git a/src/main/java/com/google/gwtexpui/user/client/View.java b/src/main/java/com/google/gwtexpui/user/client/View.java
index 87668a7..35ecb12 100644
--- a/src/main/java/com/google/gwtexpui/user/client/View.java
+++ b/src/main/java/com/google/gwtexpui/user/client/View.java
@@ -40,7 +40,7 @@
   public final boolean isCurrentView() {
     Widget p = getParent();
     while (p != null) {
-      if (p instanceof ViewSite) {
+      if (p instanceof ViewSite<?>) {
         return ((ViewSite<?>) p).getView() == this;
       }
       p = p.getParent();
