diff --git a/src/vte.cc b/src/vte.cc
index 7e077c15..09907915 100644
--- a/src/vte.cc
+++ b/src/vte.cc
@@ -2340,6 +2340,20 @@ VteTerminalPrivate::get_color(int entry) const
 	return nullptr;
 }
 
+/*
+ * Get the API color from the palette.
+ * The return value can be NULL only if entry is one of VTE_CURSOR_BG,
+ * VTE_CURSOR_FG, VTE_HIGHLIGHT_BG or VTE_HIGHLIGHT_FG.
+ */
+vte::color::rgb const*
+VteTerminalPrivate::get_api_color(int entry) const
+{
+        VtePaletteColor const* palette_color = &m_palette[entry];
+        if (palette_color->sources[VTE_COLOR_SOURCE_API].is_set)
+                return &palette_color->sources[VTE_COLOR_SOURCE_API].color;
+        return nullptr;
+}
+
 /* Set up a palette entry with a more-or-less match for the requested color. */
 void
 VteTerminalPrivate::set_color(int entry,
@@ -2511,8 +2525,8 @@ VteTerminalPrivate::set_colors(vte::color::rgb const* foreground,
 				}
 				break;
 			case VTE_BOLD_FG:
-                                color = vte::color::rgb(get_color(VTE_DEFAULT_FG),
-                                                        get_color(VTE_DEFAULT_BG),
+                                color = vte::color::rgb(get_api_color(VTE_DEFAULT_FG),
+                                                        get_api_color(VTE_DEFAULT_BG),
                                                         1.8);
 				break;
 			case VTE_HIGHLIGHT_BG:
@@ -2564,8 +2578,8 @@ VteTerminalPrivate::reset_color_bold()
         _vte_debug_print(VTE_DEBUG_MISC,
                          "Reset %s color.\n", "bold");
         set_color(VTE_BOLD_FG, VTE_COLOR_SOURCE_API,
-                  vte::color::rgb(get_color(VTE_DEFAULT_FG),
-                                  get_color(VTE_DEFAULT_BG),
+                  vte::color::rgb(get_api_color(VTE_DEFAULT_FG),
+                                  get_api_color(VTE_DEFAULT_BG),
                                   1.8));
 }
 
diff --git a/src/vteinternal.hh b/src/vteinternal.hh
index f25c87ec..13d8d1f5 100644
--- a/src/vteinternal.hh
+++ b/src/vteinternal.hh
@@ -1220,6 +1220,7 @@ public:
         long get_cell_width()  { ensure_font(); return m_cell_width;  }
 
         vte::color::rgb const* get_color(int entry) const;
+        vte::color::rgb const* get_api_color(int entry) const;
         void set_color(int entry,
                        int source,
                        vte::color::rgb const& proposed);
