diff --git a/dlls/comctl32/commctrl.c b/dlls/comctl32/commctrl.c
index 1689298567fcc43e62be31fc129be31976894b1c..2acf7b37edd91496d63ba560f624a84efd17366a 100644
--- a/dlls/comctl32/commctrl.c
+++ b/dlls/comctl32/commctrl.c
@@ -1210,14 +1210,15 @@ COMCTL32_CreateToolTip(HWND hwndOwner)
     if (hwndToolTip)
     {
 	NMTOOLTIPSCREATED nmttc;
-
-	nmttc.hdr.hwndFrom = hwndOwner;
-	nmttc.hdr.idFrom = GetWindowLongA(hwndOwner, GWL_ID);
+        /* true owner can be different if hwndOwner is a child window */
+        HWND hwndTrueOwner = GetWindow(hwndToolTip, GW_OWNER);
+        nmttc.hdr.hwndFrom = hwndTrueOwner;
+        nmttc.hdr.idFrom = GetWindowLongA(hwndTrueOwner, GWL_ID);
 	nmttc.hdr.code = NM_TOOLTIPSCREATED;
 	nmttc.hwndToolTips = hwndToolTip;
 
-	SendMessageA(GetParent(hwndOwner), WM_NOTIFY,
-		     (WPARAM)GetWindowLongA(hwndOwner, GWL_ID),
+       SendMessageA(GetParent(hwndTrueOwner), WM_NOTIFY,
+                    (WPARAM)GetWindowLongA(hwndTrueOwner, GWL_ID),
 		     (LPARAM)&nmttc);
     }