diff --git a/dlls/comctl32/treeview.c b/dlls/comctl32/treeview.c
index 57d98c7829ed6dd643b2741c9b6f8f04ab7529f6..471d41d518ab544587ab46a884c8130ea311fb7f 100644
--- a/dlls/comctl32/treeview.c
+++ b/dlls/comctl32/treeview.c
@@ -2043,13 +2043,13 @@ TREEVIEW_SetItemA(TREEVIEW_INFO *infoPtr, LPTVITEMEXA tvItem)
 
     if (!TREEVIEW_ValidItem(infoPtr, wineItem))
 	return FALSE;
+    
+    /* store the orignal item values */
+    originalItem = *wineItem;
 
     if (!TREEVIEW_DoSetItem(infoPtr, wineItem, tvItem))
 	return FALSE;
 
-    /* store the orignal item values */
-    originalItem = *wineItem;
-
     /* If the text or TVIS_BOLD was changed, and it is visible, recalculate. */
     if ((tvItem->mask & TVIF_TEXT
 	 || (tvItem->mask & TVIF_STATE && tvItem->stateMask & TVIS_BOLD))