Index: src/TortoiseBlame/TortoiseBlame.cpp
===================================================================
--- src/TortoiseBlame/TortoiseBlame.cpp	(revision 26159)
+++ src/TortoiseBlame/TortoiseBlame.cpp	(working copy)
@@ -584,9 +584,24 @@
 {
     m_directFunction = SendMessage(wEditor, SCI_GETDIRECTFUNCTION, 0, 0);
     m_directPointer = SendMessage(wEditor, SCI_GETDIRECTPOINTER, 0, 0);
+    CRegStdDWORD used2d(L"Software\\TortoiseSVN\\ScintillaDirect2D", TRUE);
+    bool enabled2d = false;
+    if (SysInfo::Instance().IsWin7OrLater() && DWORD(used2d))
+        enabled2d = true;
     // Set up the global default style. These attributes are used wherever no explicit choices are made.
+    std::wstring fontNameW = CRegStdString(L"Software\\TortoiseSVN\\BlameFontName", L"Courier New");
+    std::string fontName;
+    if (enabled2d)
+        fontName = CUnicodeUtils::StdGetUTF8(fontNameW);
+    else
+    {
+        int ansi_len = ::WideCharToMultiByte(CP_ACP, NULL, fontNameW.c_str(), -1, NULL, 0, NULL, NULL);
+        std::unique_ptr<char[]> buffer(new char[ansi_len]);
+        ::WideCharToMultiByte(CP_ACP, NULL, fontNameW.c_str(), -1, buffer.get(), ansi_len, NULL, NULL);
+        fontName = buffer.get();
+    }
     SetAStyle(STYLE_DEFAULT, black, white, (DWORD)CRegStdDWORD(L"Software\\TortoiseSVN\\BlameFontSize", 10),
-        (CUnicodeUtils::StdGetUTF8((tstring)(CRegStdString(L"Software\\TortoiseSVN\\BlameFontName", L"Courier New")))).c_str());
+        fontName.c_str());
     //SetAStyle(STYLE_MARK, black, ::GetSysColor(COLOR_HIGHLIGHT));
     SendEditor(SCI_INDICSETSTYLE, STYLE_MARK, INDIC_ROUNDBOX);
     SendEditor(SCI_INDICSETFORE, STYLE_MARK, darkBlue);
@@ -607,8 +622,7 @@
     SendEditor(SCI_SETSELFORE, TRUE, ::GetSysColor(COLOR_HIGHLIGHTTEXT));
     SendEditor(SCI_SETSELBACK, TRUE, ::GetSysColor(COLOR_HIGHLIGHT));
     SendEditor(SCI_SETCARETFORE, ::GetSysColor(COLOR_WINDOWTEXT));
-    CRegStdDWORD used2d(L"Software\\TortoiseSVN\\ScintillaDirect2D", TRUE);
-    if (SysInfo::Instance().IsWin7OrLater() && DWORD(used2d))
+    if (enabled2d)
     {
         SendEditor(SCI_SETTECHNOLOGY, SC_TECHNOLOGY_DIRECTWRITERETAIN);
         SendEditor(SCI_SETBUFFEREDDRAW, 0);
Index: src/TortoiseUDiff/MainWindow.cpp
===================================================================
--- src/TortoiseUDiff/MainWindow.cpp	(revision 26159)
+++ src/TortoiseUDiff/MainWindow.cpp	(working copy)
@@ -575,9 +575,19 @@
     m_directPointer = SendMessage(m_hWndEdit, SCI_GETDIRECTPOINTER, 0, 0);
 
     // Set up the global default style. These attributes are used wherever no explicit choices are made.
+    CRegStdDWORD used2d(L"Software\\TortoiseSVN\\ScintillaDirect2D", TRUE);
+    bool enabled2d = false;
+    if (SysInfo::Instance().IsWin7OrLater() && DWORD(used2d))
+        enabled2d = true;
+    std::wstring fontNameW = CRegStdString(L"Software\\TortoiseSVN\\UDiffFontName", L"Courier New");
+    std::string fontName;
+    if (enabled2d)
+        fontName = CUnicodeUtils::StdGetUTF8(fontNameW);
+    else
+        fontName = (LPCSTR)CStringA(fontNameW.c_str());
     SetAStyle(STYLE_DEFAULT, ::GetSysColor(COLOR_WINDOWTEXT), ::GetSysColor(COLOR_WINDOW),
         CRegStdDWORD(L"Software\\TortoiseSVN\\UDiffFontSize", 10),
-        CUnicodeUtils::StdGetUTF8(CRegStdString(L"Software\\TortoiseSVN\\UDiffFontName", L"Courier New")).c_str());
+        fontName.c_str());
     SendEditor(SCI_SETTABWIDTH, CRegStdDWORD(L"Software\\TortoiseSVN\\UDiffTabSize", 4));
     SendEditor(SCI_SETREADONLY, TRUE);
     LRESULT pix = SendEditor(SCI_TEXTWIDTH, STYLE_LINENUMBER, (LPARAM)"_99999");
@@ -590,8 +600,7 @@
     SendEditor(SCI_SETSELFORE, TRUE, ::GetSysColor(COLOR_HIGHLIGHTTEXT));
     SendEditor(SCI_SETSELBACK, TRUE, ::GetSysColor(COLOR_HIGHLIGHT));
     SendEditor(SCI_SETCARETFORE, ::GetSysColor(COLOR_WINDOWTEXT));
-    CRegStdDWORD used2d(L"Software\\TortoiseSVN\\ScintillaDirect2D", TRUE);
-    if (SysInfo::Instance().IsWin7OrLater() && DWORD(used2d))
+    if (enabled2d)
     {
         SendEditor(SCI_SETTECHNOLOGY, SC_TECHNOLOGY_DIRECTWRITERETAIN);
         SendEditor(SCI_SETBUFFEREDDRAW, 0);
Index: src/Utils/MiscUI/SciEdit.cpp
===================================================================
--- src/Utils/MiscUI/SciEdit.cpp	(revision 26159)
+++ src/Utils/MiscUI/SciEdit.cpp	(working copy)
@@ -367,7 +367,13 @@
 
 void CSciEdit::SetFont(CString sFontName, int iFontSizeInPoints)
 {
-    Call(SCI_STYLESETFONT, STYLE_DEFAULT, (LPARAM)(LPCSTR)CStringA(sFontName));
+    CRegStdDWORD used2d(L"Software\\TortoiseSVN\\ScintillaDirect2D", TRUE);
+    CStringA fontName;
+    if (SysInfo::Instance().IsWin7OrLater() && DWORD(used2d))
+        fontName = CUnicodeUtils::GetUTF8(sFontName);
+    else
+        fontName = sFontName; // convert Unicode to ANSI
+    Call(SCI_STYLESETFONT, STYLE_DEFAULT, (LPARAM)(LPCSTR)fontName);
     Call(SCI_STYLESETSIZE, STYLE_DEFAULT, iFontSizeInPoints);
     Call(SCI_STYLECLEARALL);
 
