diff --git a/user/src/com/google/gwt/user/client/ui/FlowPanel.java b/user/src/com/google/gwt/user/client/ui/FlowPanel.java
index 44f2153..eab2cfa 100644
--- a/user/src/com/google/gwt/user/client/ui/FlowPanel.java
+++ b/user/src/com/google/gwt/user/client/ui/FlowPanel.java
@@ -15,6 +15,7 @@
  */
 package com.google.gwt.user.client.ui;
 
+import com.google.gwt.dom.client.Node;
 import com.google.gwt.user.client.DOM;
 
 /**
@@ -47,7 +48,13 @@
   @Override
   public void clear() {
     super.doLogicalClear();
-    this.getElement().setInnerHTML("");
+
+    // Remove all existing child nodes.
+    Node child = getElement().getFirstChild();
+    while (child != null) {
+      getElement().removeChild(child);
+      child = getElement().getFirstChild();
+    }
   }
 
   /**
diff --git a/user/test/com/google/gwt/user/client/ui/FlowPanelTest.java b/user/test/com/google/gwt/user/client/ui/FlowPanelTest.java
index 441ac03..5db2691 100644
--- a/user/test/com/google/gwt/user/client/ui/FlowPanelTest.java
+++ b/user/test/com/google/gwt/user/client/ui/FlowPanelTest.java
@@ -15,6 +15,7 @@
  */
 package com.google.gwt.user.client.ui;
 
+import com.google.gwt.dom.client.Element;
 import com.google.gwt.junit.client.GWTTestCase;
 
 import java.util.ArrayList;
@@ -58,4 +59,22 @@
       assertNull(child.getElement().getPropertyString("__listener") == null);
     }
   }
+
+  public void testClearWithNestedChildren() {
+    FlowPanel target = new FlowPanel();
+    FlowPanel child0 = new FlowPanel();
+    HTML child1 = new HTML();
+    target.add(child0);
+    child0.add(child1);
+
+    Element child0Elem = child0.getElement();
+    Element child1Elem = child1.getElement();
+
+    assertEquals(child0Elem, target.getElement().getFirstChild());
+    assertEquals(child1Elem, child0Elem.getFirstChild());
+
+    target.clear();
+
+    assertEquals(child1Elem, child0Elem.getFirstChildElement());
+  }
 }
