diff --git a/dlls/hhctrl.ocx/help.c b/dlls/hhctrl.ocx/help.c
index 3bc9e8e..85c076d 100644
--- a/dlls/hhctrl.ocx/help.c
+++ b/dlls/hhctrl.ocx/help.c
@@ -56,7 +56,7 @@
     iSize = LoadStringW(hhctrl_hinstance, dwID, NULL, 0);
     iSize += 2; /* some strings (tab text) needs double-null termination */
 
-    string = hhctrl_alloc(iSize * sizeof(WCHAR));
+    string = heap_alloc(iSize * sizeof(WCHAR));
     LoadStringW(hhctrl_hinstance, dwID, string, iSize);
 
     return string;
@@ -95,8 +95,8 @@
     SetChmPath(&chm_path, info->pCHMInfo->szFile, surl);
     ret = NavigateToChm(info, chm_path.chm_file, chm_path.chm_index);
 
-    hhctrl_free(chm_path.chm_file);
-    hhctrl_free(chm_path.chm_index);
+    heap_free(chm_path.chm_file);
+    heap_free(chm_path.chm_index);
 
     return ret;
 }
@@ -577,7 +577,7 @@
         szBuf[dwLen + 2] = 0; /* Double-null terminate */
 
         buttons[dwIndex].iString = (DWORD)SendMessageW(hToolbar, TB_ADDSTRINGW, 0, (LPARAM)szBuf);
-        hhctrl_free(szBuf);
+        heap_free(szBuf);
     }
 
     SendMessageW(hToolbar, TB_ADDBUTTONSW, dwNumButtons, (LPARAM)&buttons);
@@ -623,7 +623,7 @@
 
     ret = SendMessageW( hwndTabCtrl, TCM_INSERTITEMW, index, (LPARAM)&tie );
 
-    hhctrl_free(tabText);
+    heap_free(tabText);
     return ret;
 }
 
@@ -922,16 +922,16 @@
         return;
 
     /* Free allocated strings */
-    hhctrl_free((LPWSTR)info->WinType.pszType);
-    hhctrl_free((LPWSTR)info->WinType.pszCaption);
-    hhctrl_free((LPWSTR)info->WinType.pszToc);
-    hhctrl_free((LPWSTR)info->WinType.pszIndex);
-    hhctrl_free((LPWSTR)info->WinType.pszFile);
-    hhctrl_free((LPWSTR)info->WinType.pszHome);
-    hhctrl_free((LPWSTR)info->WinType.pszJump1);
-    hhctrl_free((LPWSTR)info->WinType.pszJump2);
-    hhctrl_free((LPWSTR)info->WinType.pszUrlJump1);
-    hhctrl_free((LPWSTR)info->WinType.pszUrlJump2);
+    heap_free((LPWSTR)info->WinType.pszType);
+    heap_free((LPWSTR)info->WinType.pszCaption);
+    heap_free((LPWSTR)info->WinType.pszToc);
+    heap_free((LPWSTR)info->WinType.pszIndex);
+    heap_free((LPWSTR)info->WinType.pszFile);
+    heap_free((LPWSTR)info->WinType.pszHome);
+    heap_free((LPWSTR)info->WinType.pszJump1);
+    heap_free((LPWSTR)info->WinType.pszJump2);
+    heap_free((LPWSTR)info->WinType.pszUrlJump1);
+    heap_free((LPWSTR)info->WinType.pszUrlJump2);
 
     if (info->pCHMInfo)
         CloseCHM(info->pCHMInfo);
@@ -942,13 +942,13 @@
     if(info->WinType.hwndHelp)
         DestroyWindow(info->WinType.hwndHelp);
 
-    hhctrl_free(info);
+    heap_free(info);
     OleUninitialize();
 }
 
 HHInfo *CreateHelpViewer(LPCWSTR filename)
 {
-    HHInfo *info = hhctrl_alloc_zero(sizeof(HHInfo));
+    HHInfo *info = heap_alloc_zero(sizeof(HHInfo));
 
     OleInitialize(NULL);
 
