diff --git a/dlls/comctl32/treeview.c b/dlls/comctl32/treeview.c
index 471d41d518ab544587ab46a884c8130ea311fb7f..508f22d134f36972cc5596919fdf5d61df1e6699 100644
--- a/dlls/comctl32/treeview.c
+++ b/dlls/comctl32/treeview.c
@@ -2016,8 +2016,12 @@ TREEVIEW_GetItemA(TREEVIEW_INFO *infoPtr, LPTVITEMEXA tvItem)
     if (tvItem->mask & TVIF_SELECTEDIMAGE)
 	tvItem->iSelectedImage = wineItem->iSelectedImage;
 
-    if (tvItem->mask & TVIF_STATE)
-	tvItem->state = wineItem->state & tvItem->stateMask;
+    if (tvItem->mask & TVIF_STATE) {
+        /* Careful here - Windows ignores the stateMask when you get the state
+ 	    That contradicts the documentation, but makes more common sense, masking
+	    retrieval in this way seems overkill */
+        tvItem->state = wineItem->state;
+    }
 
     if (tvItem->mask & TVIF_TEXT)
 	lstrcpynA(tvItem->pszText, wineItem->pszText, tvItem->cchTextMax);