diff --git a/reference/code-museum/src/com/google/gwt/museum/client/defaultmuseum/DefaultMuseum.java b/reference/code-museum/src/com/google/gwt/museum/client/defaultmuseum/DefaultMuseum.java
index 638a9a7..0b21af2 100644
--- a/reference/code-museum/src/com/google/gwt/museum/client/defaultmuseum/DefaultMuseum.java
+++ b/reference/code-museum/src/com/google/gwt/museum/client/defaultmuseum/DefaultMuseum.java
@@ -32,5 +32,6 @@
     addIssue(new Issue2307());
     addIssue(new Issue2321());
     addIssue(new Issue2331());
+    addIssue(new Issue2338());
   }
 }
diff --git a/reference/code-museum/src/com/google/gwt/museum/client/defaultmuseum/Issue2338.java b/reference/code-museum/src/com/google/gwt/museum/client/defaultmuseum/Issue2338.java
new file mode 100644
index 0000000..7428af8
--- /dev/null
+++ b/reference/code-museum/src/com/google/gwt/museum/client/defaultmuseum/Issue2338.java
@@ -0,0 +1,54 @@
+/*
+ * Copyright 2008 Google Inc.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package com.google.gwt.museum.client.defaultmuseum;
+
+import com.google.gwt.museum.client.common.AbstractIssue;
+import com.google.gwt.user.client.ui.Tree;
+import com.google.gwt.user.client.ui.TreeItem;
+import com.google.gwt.user.client.ui.Widget;
+
+/**
+ * Opening a tree item flickers in IE7 because all of the children are shown for
+ * an instant, and then the animation continues normally.
+ */
+public class Issue2338 extends AbstractIssue {
+
+  @Override
+  public Widget createIssue() {
+    Tree tree = new Tree();
+    TreeItem root = tree.addItem("Root");
+    for (int i = 0; i < 5; i++) {
+      root.addItem("Item " + i);
+    }
+    return tree;
+  }
+
+  @Override
+  public String getInstructions() {
+    return "Open the root node and you should not see a flicker";
+  }
+
+  @Override
+  public String getSummary() {
+    return "Tree animation flickers when expanding a TreeItem";
+  }
+
+  @Override
+  public boolean hasCSS() {
+    return false;
+  }
+
+}
diff --git a/user/src/com/google/gwt/user/client/ui/TreeItem.java b/user/src/com/google/gwt/user/client/ui/TreeItem.java
index 9609457..f3c2c15 100644
--- a/user/src/com/google/gwt/user/client/ui/TreeItem.java
+++ b/user/src/com/google/gwt/user/client/ui/TreeItem.java
@@ -100,6 +100,10 @@
         height = scrollHeight - height;
       }
 
+      // Issue 2338: If the height is 0px, IE7 will display all of the children
+      // instead of hiding them completely.
+      height = Math.max(height, 1);
+
       DOM.setStyleAttribute(curItem.childSpanElem, "height", height + "px");
 
       // We need to set the width explicitly of the item might be cropped
@@ -684,9 +688,9 @@
       tree.showClosedImage(this);
     }
 
-    // We may need to update the tree's selection in response to a tree state change. For
-    // example, if the tree's currently selected item is a descendant of an item whose
-    // branch was just collapsed, then the item itself should become the newly-selected item.
+    // We may need to update the tree's selection in response to a tree state
+    // change. For example, if the tree's currently selected item is a
+    // descendant of an item whose branch was just collapsed, then the item
     // itself should become the newly-selected item.
     if (updateTreeSelection) {
       tree.maybeUpdateSelection(this, this.open);
