diff --git a/user/src/com/google/gwt/user/cellview/client/CellBrowser.java b/user/src/com/google/gwt/user/cellview/client/CellBrowser.java
index 7ab531e..8dcd61d 100644
--- a/user/src/com/google/gwt/user/cellview/client/CellBrowser.java
+++ b/user/src/com/google/gwt/user/cellview/client/CellBrowser.java
@@ -968,7 +968,7 @@
 
   /**
    * Set the open state of a tree node.
-   *
+   * 
    * @param cellList the CellList that changed state.
    * @param value the value to open
    * @param open true to open, false to close
@@ -1029,12 +1029,9 @@
       }
 
       // Close the node.
-      TreeNode closedNode = cellList.isFocusedOpen
+      TreeNode closedNode = (cellList.isFocusedOpen && (treeNodes.size() > cellList.level + 1))
           ? treeNodes.get(cellList.level + 1) : null;
       trimToLevel(cellList.level);
-      cellList.focusedKey = null;
-      cellList.focusedValue = null;
-      cellList.isFocusedOpen = false;
 
       // Refresh the display to update the styles for this node.
       if (redraw) {
@@ -1065,5 +1062,13 @@
       removed.destroy();
       curLevel--;
     }
+
+    // Nullify the focused key at the level.
+    if (level < treeNodes.size()) {
+      TreeNodeImpl<?> node = treeNodes.get(level);
+      node.display.focusedKey = null;
+      node.display.focusedValue = null;
+      node.display.isFocusedOpen = false;
+    }
   }
 }
diff --git a/user/test/com/google/gwt/user/cellview/client/AbstractCellTreeTestBase.java b/user/test/com/google/gwt/user/cellview/client/AbstractCellTreeTestBase.java
index 1f57b59..18bc2cc 100644
--- a/user/test/com/google/gwt/user/cellview/client/AbstractCellTreeTestBase.java
+++ b/user/test/com/google/gwt/user/cellview/client/AbstractCellTreeTestBase.java
@@ -387,6 +387,9 @@
 
     // Verify the node is destroyed.
     assertTrue(b.isDestroyed());
+
+    // True to open a new node.
+    assertNotNull(root.setChildOpen(0, true));
   }
 
   /**
