wxListItem();
     ~wxListItem() { delete m_attr; }
 
+    // resetting
+    void Clear();
+    void ClearAttributes();
+
     // setters
     void SetMask(long mask) { m_mask = mask; }
     void SetId(long id) { m_itemId = id; }
 
 void wxFileData::MakeItem( wxListItem &item )
 {
     item.m_text = m_name;
+    item.ClearAttributes();
     if (IsExe()) item.SetTextColour(*wxRED);
     if (IsDir()) item.SetTextColour(*wxBLUE);
     item.m_image = IsDir() ? 0 : -1;
     m_dialogStyle = style;
     
     if ((m_dialogStyle & wxMULTIPLE ) && !(m_dialogStyle & wxOPEN))
-        m_dialogStyle &= ~wxMULTIPLE;
+        m_dialogStyle |= wxOPEN;
     
     m_dir = defaultDir;
     if (m_dir.IsEmpty())
 
     m_attr = NULL;
 }
 
+void wxListItem::Clear()
+{
+    m_mask = 0;
+    m_itemId = 0;
+    m_col = 0;
+    m_state = 0;
+    m_stateMask = 0;
+    m_image = 0;
+    m_data = 0;
+    m_format = wxLIST_FORMAT_CENTRE;
+    m_width = 0;
+    m_text = wxEmptyString;
+
+    if (m_attr) delete m_attr;
+    m_attr = NULL;
+}
+
+void wxListItem::ClearAttributes()
+{
+    if (m_attr) delete m_attr;
+    m_attr = NULL;
+}
+
 // -------------------------------------------------------------------------------------
 // wxListEvent
 // -------------------------------------------------------------------------------------
 
     }
 
     if (point.x < m_x)
-        flags |= wxTREE_HITTEST_ONITEMIDENT;
+        flags |= wxTREE_HITTEST_ONITEMINDENT;
     if (point.x > m_x+m_width)
         flags |= wxTREE_HITTEST_ONITEMRIGHT;
 
 
     m_attr = NULL;
 }
 
+void wxListItem::Clear()
+{
+    m_mask = 0;
+    m_itemId = 0;
+    m_col = 0;
+    m_state = 0;
+    m_stateMask = 0;
+    m_image = 0;
+    m_data = 0;
+    m_format = wxLIST_FORMAT_CENTRE;
+    m_width = 0;
+    m_text = wxEmptyString;
+
+    if (m_attr) delete m_attr;
+    m_attr = NULL;
+}
+
+void wxListItem::ClearAttributes()
+{
+    if (m_attr) delete m_attr;
+    m_attr = NULL;
+}
+
 static void wxConvertFromMSWListItem(const wxListCtrl *ctrl, wxListItem& info, LV_ITEM& lvItem, HWND getFullInfo)
 {
     info.m_data = lvItem.lParam;