wxDataViewVirtualListModel *list_model =
             (wxDataViewVirtualListModel*) GetOwner()->GetModel();
         m_count = list_model->GetCount();
-        UpdateDisplay();
-        return true;
     }
+    else
+    {
+        SortPrepare();
 
-    SortPrepare();
+        wxDataViewTreeNode * node;
+        node = FindNode(parent);
+
+        if( node == NULL )
+            return false;
 
-    wxDataViewTreeNode * node;
-    node = FindNode(parent);
+        node->SetHasChildren( true );
 
-    if( node == NULL )
-        return false;
+        if( g_model->IsContainer( item ) )
+        {
+            wxDataViewTreeNode * newnode = new wxDataViewTreeNode( node );
+            newnode->SetItem(item);
+            newnode->SetHasChildren( true );
+            node->AddNode( newnode);
+        }
+        else
+            node->AddLeaf( item.GetID() );
 
-    node->SetHasChildren( true );
+        node->ChangeSubTreeCount(1);
 
-    if( g_model->IsContainer( item ) )
-    {
-        wxDataViewTreeNode * newnode = new wxDataViewTreeNode( node );
-        newnode->SetItem(item);
-        newnode->SetHasChildren( true );
-        node->AddNode( newnode);
+        m_count = -1;
     }
-    else
-        node->AddLeaf( item.GetID() );
 
-    node->ChangeSubTreeCount(1);
-
-    m_count = -1;
     UpdateDisplay();
 
     return true;