diff --git a/reactos/dll/win32/gdi32/gdi32.rbuild b/reactos/dll/win32/gdi32/gdi32.rbuild
index 5643e9b3a5b..ced2b1f0bd8 100644
--- a/reactos/dll/win32/gdi32/gdi32.rbuild
+++ b/reactos/dll/win32/gdi32/gdi32.rbuild
@@ -6,6 +6,7 @@
0x0600
0x0501
ntdll
+ user32
kernel32
advapi32
win32ksys
diff --git a/reactos/dll/win32/gdi32/objects/font.c b/reactos/dll/win32/gdi32/objects/font.c
index 4cb61e0c977..55c98ee0a41 100644
--- a/reactos/dll/win32/gdi32/objects/font.c
+++ b/reactos/dll/win32/gdi32/objects/font.c
@@ -1174,9 +1174,11 @@ GetKerningPairsA( HDC hDC,
}
DPRINT("charset %d => codepage %u\n", charset, csi.ciACP);
- total_kern_pairs = GetKerningPairsW(hDC, 0, NULL);
+ total_kern_pairs = NtGdiGetKerningPairs(hDC, 0, NULL);
if (!total_kern_pairs) return 0;
+ if (!cPairs && !kern_pairA) return total_kern_pairs;
+
kern_pairW = HeapAlloc(GetProcessHeap(), 0, total_kern_pairs * sizeof(*kern_pairW));
GetKerningPairsW(hDC, total_kern_pairs, kern_pairW);
diff --git a/reactos/dll/win32/gdi32/objects/palette.c b/reactos/dll/win32/gdi32/objects/palette.c
index f370ec0d5ea..ed7a3ce1e0f 100644
--- a/reactos/dll/win32/gdi32/objects/palette.c
+++ b/reactos/dll/win32/gdi32/objects/palette.c
@@ -86,10 +86,7 @@ RealizePalette(HDC hDC) /* [in] Handle of device context */
}
}
#endif
-// return UserRealizePalette(hDC);
-
-//HACK!!!!!
- return NtGdiRealizePalette(hDC);
+ return UserRealizePalette(hDC);
}