diff --git a/ports/SkFontHost_win_dw.cpp b/ports/SkFontHost_win_dw.cpp
index e1685e6..fe246db 100644
--- a/ports/SkFontHost_win_dw.cpp
+++ b/ports/SkFontHost_win_dw.cpp
@@ -97,12 +97,6 @@
     SkTDArray<uint8_t> fBits;
 };
 
-typedef HRESULT (WINAPI *DWriteCreateFactoryProc)(
-    __in DWRITE_FACTORY_TYPE factoryType,
-    __in REFIID iid,
-    __out IUnknown **factory
-);
-
 static HRESULT get_dwrite_factory(IDWriteFactory** factory) {
     static IDWriteFactory* gDWriteFactory = NULL;
 
@@ -111,6 +105,7 @@
         return S_OK;
     }
 
+    typedef decltype(DWriteCreateFactory)* DWriteCreateFactoryProc;
     DWriteCreateFactoryProc dWriteCreateFactoryProc =
         reinterpret_cast<DWriteCreateFactoryProc>(
             GetProcAddress(LoadLibraryW(L"dwrite.dll"), "DWriteCreateFactory")
@@ -1847,6 +1842,13 @@
 
 #endif
 
+typedef decltype(GetUserDefaultLocaleName)* GetUserDefaultLocaleNameProc;
+static GetUserDefaultLocaleNameProc GetGetUserDefaultLocaleNameProc() {
+    return reinterpret_cast<GetUserDefaultLocaleNameProc>(
+        GetProcAddress(LoadLibraryW(L"Kernel32.dll"), "GetUserDefaultLocaleName")
+    );
+}
+
 SkFontMgr* SkFontMgr::Factory() {
     IDWriteFactory* factory;
     HRNM(get_dwrite_factory(&factory), "Could not get factory.");
@@ -1857,10 +1859,18 @@
 
     WCHAR localeNameStorage[LOCALE_NAME_MAX_LENGTH];
     WCHAR* localeName = NULL;
-    int localeNameLen = GetUserDefaultLocaleName(localeNameStorage, LOCALE_NAME_MAX_LENGTH);
-    if (localeNameLen) {
-        localeName = localeNameStorage;
-    };
+    int localeNameLen = 0;
+
+    // Dynamically load GetUserDefaultLocaleName function, as it is not available on XP.
+    GetUserDefaultLocaleNameProc getUserDefaultLocaleNameProc = GetGetUserDefaultLocaleNameProc();
+    if (NULL == getUserDefaultLocaleNameProc) {
+        SkDebugf("Could not get GetUserDefaultLocaleName.");
+    } else {
+        localeNameLen = getUserDefaultLocaleNameProc(localeNameStorage, LOCALE_NAME_MAX_LENGTH);
+        if (localeNameLen) {
+            localeName = localeNameStorage;
+        };
+    }
 
     return SkNEW_ARGS(SkFontMgr_DirectWrite, (sysFontCollection.get(), localeName, localeNameLen));
 }
