diff --git a/dlls/advpack/Makefile.in b/dlls/advpack/Makefile.in
index 7afde24..c7a206c 100644
--- a/dlls/advpack/Makefile.in
+++ b/dlls/advpack/Makefile.in
@@ -5,7 +5,6 @@
 MODULE    = advpack.dll
 IMPORTLIB = libadvpack.$(IMPLIBEXT)
 IMPORTS   = setupapi version user32 advapi32 kernel32 ntdll
-EXTRADEFS = -DWINE_NO_LONG_AS_INT
 
 C_SRCS = \
 	advpack.c \
diff --git a/dlls/advpack/advpack.c b/dlls/advpack/advpack.c
index 446e8da..154f234 100644
--- a/dlls/advpack/advpack.c
+++ b/dlls/advpack/advpack.c
@@ -191,7 +191,7 @@
  */
 BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
 {
-    TRACE("(%p, %ld, %p)\n", hinstDLL, fdwReason, lpvReserved);
+    TRACE("(%p, %d, %p)\n", hinstDLL, fdwReason, lpvReserved);
 
     if (fdwReason == DLL_PROCESS_ATTACH)
         DisableThreadLibraryCalls(hinstDLL);
@@ -220,7 +220,7 @@
     HANDLE hToken;
     PSID pSid;
 
-    TRACE("(%ld, %p)\n", reserved, pReserved);
+    TRACE("(%d, %p)\n", reserved, pReserved);
 
     if (!OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, &hToken))
         return FALSE;
@@ -302,7 +302,7 @@
  */
 BOOL WINAPI NeedReboot(DWORD dwRebootCheck)
 {
-    FIXME("(%ld): stub\n", dwRebootCheck);
+    FIXME("(%d): stub\n", dwRebootCheck);
     return FALSE;
 }
 
@@ -317,7 +317,7 @@
     UNICODE_STRING filenameW, installW;
     HRESULT res;
 
-    TRACE("(%s, %s, %ld, %p, %p)\n", debugstr_a(pszInfFilename),
+    TRACE("(%s, %s, %d, %p, %p)\n", debugstr_a(pszInfFilename),
           debugstr_a(pszInstallSection), dwFlags, phInf, pvReserved);
 
     if (!pszInfFilename || !phInf)
@@ -355,7 +355,7 @@
 HRESULT WINAPI OpenINFEngineW(LPCWSTR pszInfFilename, LPCWSTR pszInstallSection,
                               DWORD dwFlags, HINF *phInf, PVOID pvReserved)
 {
-    TRACE("(%s, %s, %ld, %p, %p)\n", debugstr_w(pszInfFilename),
+    TRACE("(%s, %s, %d, %p, %p)\n", debugstr_w(pszInfFilename),
           debugstr_w(pszInstallSection), dwFlags, phInf, pvReserved);
 
     if (!pszInfFilename || !phInf)
@@ -381,7 +381,7 @@
     UNICODE_STRING infW, secW;
     HRESULT res;
 
-    TRACE("(%p, %s, %s, %ld)\n", hWnd, debugstr_a(pszINF),
+    TRACE("(%p, %s, %s, %d)\n", hWnd, debugstr_a(pszINF),
           debugstr_a(pszSec), dwReserved);
 
     if (!pszINF || !pszSec)
@@ -424,7 +424,7 @@
 HRESULT WINAPI RebootCheckOnInstallW(HWND hWnd, LPCWSTR pszINF,
                                      LPWSTR pszSec, DWORD dwReserved)
 {
-    FIXME("(%p, %s, %s, %ld): stub\n", hWnd, debugstr_w(pszINF),
+    FIXME("(%p, %s, %s, %d): stub\n", hWnd, debugstr_w(pszINF),
           debugstr_w(pszSec), dwReserved);
 
     return E_FAIL;
@@ -635,7 +635,7 @@
     HRESULT res;
     DWORD len = 0;
 
-    TRACE("(%s, %s, %s, %s, %p, %ld, %p, %p)\n",
+    TRACE("(%s, %s, %s, %s, %p, %d, %p, %p)\n",
           debugstr_a(pszInfFilename), debugstr_a(pszInstallSection),
           debugstr_a(pszTranslateSection), debugstr_a(pszTranslateKey),
           pszBuffer, dwBufferSize,pdwRequiredSize, pvReserved);
@@ -711,7 +711,7 @@
 {
     HINF hInf;
 
-    TRACE("(%s, %s, %s, %s, %p, %ld, %p, %p)\n",
+    TRACE("(%s, %s, %s, %s, %p, %d, %p, %p)\n",
           debugstr_w(pszInfFilename), debugstr_w(pszInstallSection),
           debugstr_w(pszTranslateSection), debugstr_w(pszTranslateKey),
           pszBuffer, dwBufferSize,pdwRequiredSize, pvReserved);
@@ -754,7 +754,7 @@
     HRESULT res;
     DWORD len = 0;
 
-    TRACE("(%p, %s, %s, %s, %s, %ld, %p, %p)\n", hInf, debugstr_a(pszInfFilename),
+    TRACE("(%p, %s, %s, %s, %s, %d, %p, %p)\n", hInf, debugstr_a(pszInfFilename),
           debugstr_a(pszTranslateSection), debugstr_a(pszTranslateKey),
           debugstr_a(pszBuffer), dwBufferSize, pdwRequiredSize, pvReserved);
 
@@ -834,7 +834,7 @@
                                      LPWSTR pszBuffer, DWORD dwBufferSize,
                                      PDWORD pdwRequiredSize, PVOID pvReserved)
 {
-    TRACE("(%p, %s, %s, %s, %s, %ld, %p, %p)\n", hInf, debugstr_w(pszInfFilename),
+    TRACE("(%p, %s, %s, %s, %s, %d, %p, %p)\n", hInf, debugstr_w(pszInfFilename),
           debugstr_w(pszTranslateSection), debugstr_w(pszTranslateKey),
           debugstr_w(pszBuffer), dwBufferSize, pdwRequiredSize, pvReserved);
 
diff --git a/dlls/advpack/files.c b/dlls/advpack/files.c
index 0442d41..5e7691b 100644
--- a/dlls/advpack/files.c
+++ b/dlls/advpack/files.c
@@ -63,7 +63,7 @@
     LPCWSTR backup;
     HRESULT res;
 
-    TRACE("(%s, %s, %s, %ld)\n", debugstr_a(lpcszFileList),
+    TRACE("(%s, %s, %s, %d)\n", debugstr_a(lpcszFileList),
           debugstr_a(lpcszBackupDir), debugstr_a(lpcszBaseName), dwFlags);
 
     if (lpcszFileList)
@@ -127,7 +127,7 @@
     static const WCHAR ini[] = {'.','i','n','i',0};
     static const WCHAR backup[] = {'b','a','c','k','u','p',0};
 
-    TRACE("(%s, %s, %s, %ld)\n", debugstr_w(lpcszFileList),
+    TRACE("(%s, %s, %s, %d)\n", debugstr_w(lpcszFileList),
           debugstr_w(lpcszBackupDir), debugstr_w(lpcszBaseName), dwFlags);
 
     if (!lpcszFileList || !*lpcszFileList)
@@ -200,7 +200,7 @@
     UNICODE_STRING destdir, destfile;
     HRESULT res;
 
-    TRACE("(%p, %s, %s, %s, %s, %ld, %ld)\n", hwnd, debugstr_a(lpszSourceDir),
+    TRACE("(%p, %s, %s, %s, %s, %d, %d)\n", hwnd, debugstr_a(lpszSourceDir),
           debugstr_a(lpszSourceFile), debugstr_a(lpszDestDir),
           debugstr_a(lpszDestFile), dwFlags, dwReserved);
 
@@ -257,7 +257,7 @@
     HSPFILEQ fileQueue;
     PVOID pContext;
 
-    TRACE("(%p, %s, %s, %s, %s, %ld, %ld)\n", hwnd, debugstr_w(lpszSourceDir),
+    TRACE("(%p, %s, %s, %s, %s, %d, %d)\n", hwnd, debugstr_w(lpszSourceDir),
           debugstr_w(lpszSourceFile), debugstr_w(lpszDestDir),
           debugstr_w(lpszDestFile), dwFlags, dwReserved);
 
@@ -404,7 +404,7 @@
     UNICODE_STRING fileordirname;
     HRESULT res;
 
-    TRACE("(%s, %ld)\n", debugstr_a(pszFileOrDirName), dwFlags);
+    TRACE("(%s, %d)\n", debugstr_a(pszFileOrDirName), dwFlags);
 
     RtlCreateUnicodeStringFromAsciiz(&fileordirname, pszFileOrDirName);
 
@@ -438,7 +438,7 @@
     WCHAR fname[MAX_PATH];
     HRESULT ret = E_FAIL;
     
-    TRACE("(%s, %ld)\n", debugstr_w(pszFileOrDirName), dwFlags);
+    TRACE("(%s, %d)\n", debugstr_w(pszFileOrDirName), dwFlags);
     
     if (dwFlags)
         FIXME("Flags ignored!\n");
@@ -699,7 +699,7 @@
     DWORD dwFilesFound = 0;
     LPSTR szConvertedList = NULL;
 
-    TRACE("(%s, %s, %ld, %s, %p, %ld)\n", debugstr_a(CabName), debugstr_a(ExpandDir),
+    TRACE("(%s, %s, %d, %s, %p, %d)\n", debugstr_a(CabName), debugstr_a(ExpandDir),
           Flags, debugstr_a(FileList), LReserved, Reserved);
 
     if (!CabName || !ExpandDir)
@@ -798,7 +798,7 @@
     UNICODE_STRING filelist, dir, basename;
     HRESULT hr;
 
-    TRACE("(%p, %s, %s, %s, %ld)\n", hDlg, debugstr_a(pszFileList),
+    TRACE("(%p, %s, %s, %s, %d)\n", hDlg, debugstr_a(pszFileList),
           debugstr_a(pszDir), debugstr_a(pszBaseName), dwFlags);
 
     RtlCreateUnicodeStringFromAsciiz(&filelist, pszFileList);
@@ -840,7 +840,7 @@
 HRESULT WINAPI FileSaveRestoreW(HWND hDlg, LPWSTR pszFileList, LPWSTR pszDir,
                                 LPWSTR pszBaseName, DWORD dwFlags)
 {
-    FIXME("(%p, %s, %s, %s, %ld) stub\n", hDlg, debugstr_w(pszFileList),
+    FIXME("(%p, %s, %s, %s, %d) stub\n", hDlg, debugstr_w(pszFileList),
           debugstr_w(pszDir), debugstr_w(pszBaseName), dwFlags);
 
     return E_FAIL;
@@ -859,7 +859,7 @@
     UNICODE_STRING backupdir, backupfile;
     HRESULT hr;
 
-    TRACE("(%p, %s, %s, %s, %s, %s, %ld)\n", hWnd, debugstr_a(pszTitle),
+    TRACE("(%p, %s, %s, %s, %s, %s, %d)\n", hWnd, debugstr_a(pszTitle),
           debugstr_a(pszINF), debugstr_a(pszSection), debugstr_a(pszBackupDir),
           debugstr_a(pszBaseBackupFile), dwFlags);
 
@@ -908,7 +908,7 @@
                                      LPCWSTR pszSection, LPCWSTR pszBackupDir,
                                      LPCWSTR pszBaseBackupFile, DWORD dwFlags)
 {
-    FIXME("(%p, %s, %s, %s, %s, %s, %ld): stub\n", hWnd, debugstr_w(pszTitle),
+    FIXME("(%p, %s, %s, %s, %s, %s, %d): stub\n", hWnd, debugstr_w(pszTitle),
           debugstr_w(pszINF), debugstr_w(pszSection), debugstr_w(pszBackupDir),
           debugstr_w(pszBaseBackupFile), dwFlags);
 
diff --git a/dlls/advpack/install.c b/dlls/advpack/install.c
index 8f356ba..1662f1d 100644
--- a/dlls/advpack/install.c
+++ b/dlls/advpack/install.c
@@ -919,7 +919,7 @@
     UNICODE_STRING dir, title;
     HRESULT hr;
 
-    TRACE("(%p, %s, %s, %s, %s, %p, %ld, %p)\n",
+    TRACE("(%p, %s, %s, %s, %s, %p, %d, %p)\n",
           hWnd, debugstr_a(szCmdName), debugstr_a(szInfSection),
           debugstr_a(szDir), debugstr_a(lpszTitle),
           phEXE, dwFlags, pvReserved);
@@ -976,7 +976,7 @@
     ADVInfo info;
     HRESULT hr;
 
-    TRACE("(%p, %s, %s, %s, %s, %p, %ld, %p)\n",
+    TRACE("(%p, %s, %s, %s, %s, %p, %d, %p)\n",
           hWnd, debugstr_w(szCmdName), debugstr_w(szInfSection),
           debugstr_w(szDir), debugstr_w(lpszTitle),
           phEXE, dwFlags, pvReserved);
diff --git a/dlls/advpack/reg.c b/dlls/advpack/reg.c
index 64e3ca6..cd52514 100644
--- a/dlls/advpack/reg.c
+++ b/dlls/advpack/reg.c
@@ -324,7 +324,7 @@
     UNICODE_STRING title, root, subkey, value;
     HRESULT hr;
 
-    TRACE("(%p, %s, %p, %s, %s, %s, %ld)\n", hWnd, debugstr_a(pszTitleString),
+    TRACE("(%p, %s, %p, %s, %s, %s, %d)\n", hWnd, debugstr_a(pszTitleString),
           hkBackupKey, debugstr_a(pcszRootKey), debugstr_a(pcszSubKey),
           debugstr_a(pcszValueName), dwFlags);
 
@@ -369,7 +369,7 @@
                                LPCWSTR pcszRootKey, LPCWSTR pcszSubKey,
                                LPCWSTR pcszValueName, DWORD dwFlags)
 {
-    FIXME("(%p, %s, %p, %s, %s, %s, %ld): stub\n", hWnd, debugstr_w(pszTitleString),
+    FIXME("(%p, %s, %p, %s, %s, %s, %d): stub\n", hWnd, debugstr_w(pszTitleString),
           hkBackupKey, debugstr_w(pcszRootKey), debugstr_w(pcszSubKey),
           debugstr_w(pcszValueName), dwFlags);
 
@@ -388,7 +388,7 @@
     UNICODE_STRING title, inf, section;
     HRESULT hr;
 
-    TRACE("(%p, %s, %s, %s, %p, %p, %ld)\n", hWnd, debugstr_a(pszTitle),
+    TRACE("(%p, %s, %s, %s, %p, %p, %d)\n", hWnd, debugstr_a(pszTitle),
           debugstr_a(pszINF), debugstr_a(pszSection),
           hHKLMBackKey, hHKCUBackKey, dwFlags);
 
@@ -431,7 +431,7 @@
                                     LPCWSTR pszSection, HKEY hHKLMBackKey,
                                     HKEY hHKCUBackKey, DWORD dwFlags)
 {
-    FIXME("(%p, %s, %s, %s, %p, %p, %ld): stub\n", hWnd, debugstr_w(pszTitle),
+    FIXME("(%p, %s, %s, %s, %p, %p, %d): stub\n", hWnd, debugstr_w(pszTitle),
           debugstr_w(pszINF), debugstr_w(pszSection),
           hHKLMBackKey, hHKCUBackKey, dwFlags);
 
