diff --git a/dlls/hhctrl.ocx/help.c b/dlls/hhctrl.ocx/help.c
index 60614c2..e7b7a64 100644
--- a/dlls/hhctrl.ocx/help.c
+++ b/dlls/hhctrl.ocx/help.c
@@ -397,9 +397,8 @@
     return 0;
 }
 
-static LRESULT OnTopicChange(HWND hwnd, void *user_data)
+static LRESULT OnTopicChange(HHInfo *info, void *user_data)
 {
-    HHInfo *info = (HHInfo*)GetWindowLongPtrW(hwnd, GWLP_USERDATA);
     LPCWSTR chmfile = NULL, name = NULL, local = NULL;
     ContentItem *citer;
     IndexItem *iiter;
@@ -474,14 +473,17 @@
     case WM_SIZE:
         return Child_OnSize(hWnd);
     case WM_NOTIFY: {
+        HHInfo *info = (HHInfo*)GetWindowLongPtrW(hWnd, GWLP_USERDATA);
         NMHDR *nmhdr = (NMHDR*)lParam;
+
         switch(nmhdr->code) {
         case TCN_SELCHANGE:
             return OnTabChange(hWnd);
         case TVN_SELCHANGEDW:
-            return OnTopicChange(hWnd, (void*)((NMTREEVIEWW *)lParam)->itemNew.lParam);
+            return OnTopicChange(info, (void*)((NMTREEVIEWW *)lParam)->itemNew.lParam);
         case NM_DBLCLK:
-            return OnTopicChange(hWnd, (void*)((NMITEMACTIVATE *)lParam)->lParam);
+            if(info->current_tab == TAB_INDEX)
+                return OnTopicChange(info, (void*)((NMITEMACTIVATE *)lParam)->lParam);
         }
         break;
     }
