diff --git a/doc/reference/vte-sections.txt b/doc/reference/vte-sections.txt
index f73b3da5..b87d249f 100644
--- a/doc/reference/vte-sections.txt
+++ b/doc/reference/vte-sections.txt
@@ -25,6 +25,8 @@ vte_terminal_set_audible_bell
 vte_terminal_get_audible_bell
 vte_terminal_set_allow_bold
 vte_terminal_get_allow_bold
+vte_terminal_set_bold_is_bright
+vte_terminal_get_bold_is_bright
 vte_terminal_set_allow_hyperlink
 vte_terminal_get_allow_hyperlink
 vte_terminal_set_scroll_on_output
diff --git a/src/app/app.cc b/src/app/app.cc
index 27704777..636df478 100644
--- a/src/app/app.cc
+++ b/src/app/app.cc
@@ -45,6 +45,7 @@ public:
         gboolean icon_title{false};
         gboolean keep{false};
         gboolean no_argb_visual{false};
+        gboolean no_bold_is_bright{false};
         gboolean no_builtin_dingus{false};
         gboolean no_context_menu{false};
         gboolean no_double_buffer{false};
@@ -382,6 +383,8 @@ public:
                           "Live on after the command exits", nullptr },
                         { "no-argb-visual", 0, 0, G_OPTION_ARG_NONE, &no_argb_visual,
                           "Don't use an ARGB visual", nullptr },
+                        { "no-bold-is-bright", 'B', 0, G_OPTION_ARG_NONE, &no_bold_is_bright,
+                          "Bold does not brightens colors", nullptr },
                         { "no-builtin-dingus", 0, 0, G_OPTION_ARG_NONE, &no_builtin_dingus,
                           "Highlight URLs inside the terminal", nullptr },
                         { "no-context-menu", 0, 0, G_OPTION_ARG_NONE, &no_context_menu,
@@ -1836,6 +1839,7 @@ vteapp_window_constructed(GObject *object)
 
         vte_terminal_set_allow_hyperlink(window->terminal, !options.no_hyperlink);
         vte_terminal_set_audible_bell(window->terminal, options.audible_bell);
+        vte_terminal_set_bold_is_bright(window->terminal, !options.no_bold_is_bright);
         vte_terminal_set_cell_height_scale(window->terminal, options.cell_height_scale);
         vte_terminal_set_cell_width_scale(window->terminal, options.cell_width_scale);
         vte_terminal_set_cjk_ambiguous_width(window->terminal, options.cjk_ambiguous_width);
diff --git a/src/vte.cc b/src/vte.cc
index 9976cf36..c95a633c 100644
--- a/src/vte.cc
+++ b/src/vte.cc
@@ -8169,6 +8169,7 @@ VteTerminalPrivate::VteTerminalPrivate(VteTerminal *t) :
 	m_audible_bell = TRUE;
 	m_bell_margin = 10;
 	m_allow_bold = TRUE;
+        m_bold_is_bright = TRUE;
         m_deccolm_mode = FALSE;
         m_rewrap_on_resize = TRUE;
 	set_default_tabstops();
@@ -8800,7 +8801,7 @@ VteTerminalPrivate::determine_colors(VteCellAttr const* attr,
 	}
 
 	/* Handle bold by using set bold color or brightening */
-	if (attr->bold) {
+	if (attr->bold && m_bold_is_bright) {
 		if (fore == VTE_DEFAULT_FG)
 			fore = VTE_BOLD_FG;
 		else if (fore >= VTE_LEGACY_COLORS_OFFSET && fore < VTE_LEGACY_COLORS_OFFSET + VTE_LEGACY_COLOR_SET_SIZE) {
@@ -10123,6 +10124,18 @@ VteTerminalPrivate::set_allow_bold(bool setting)
         return true;
 }
 
+bool
+VteTerminalPrivate::set_bold_is_bright(bool setting)
+{
+        if (setting == m_bold_is_bright)
+                return false;
+
+	m_bold_is_bright = setting;
+	invalidate_all();
+
+        return true;
+}
+
 bool
 VteTerminalPrivate::set_allow_hyperlink(bool setting)
 {
diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h
index 755dc8e9..7d85474d 100644
--- a/src/vte/vteterminal.h
+++ b/src/vte/vteterminal.h
@@ -308,6 +308,12 @@ void vte_terminal_set_allow_bold(VteTerminal *terminal,
 _VTE_PUBLIC
 gboolean vte_terminal_get_allow_bold(VteTerminal *terminal) _VTE_GNUC_NONNULL(1);
 
+_VTE_PUBLIC
+void vte_terminal_set_bold_is_bright(VteTerminal *terminal,
+                                     gboolean bold_is_bright) _VTE_GNUC_NONNULL(1);
+_VTE_PUBLIC
+gboolean vte_terminal_get_bold_is_bright(VteTerminal *terminal) _VTE_GNUC_NONNULL(1);
+
 _VTE_PUBLIC
 void vte_terminal_set_allow_hyperlink(VteTerminal *terminal,
                                       gboolean allow_hyperlink) _VTE_GNUC_NONNULL(1);
diff --git a/src/vtegtk.cc b/src/vtegtk.cc
index 1098bf5b..fa861304 100644
--- a/src/vtegtk.cc
+++ b/src/vtegtk.cc
@@ -436,6 +436,9 @@ vte_terminal_get_property (GObject *object,
                 case PROP_BACKSPACE_BINDING:
                         g_value_set_enum (value, impl->m_backspace_binding);
                         break;
+                case PROP_BOLD_IS_BRIGHT:
+                        g_value_set_boolean (value, vte_terminal_get_bold_is_bright (terminal));
+                        break;
                 case PROP_CELL_HEIGHT_SCALE:
                         g_value_set_double (value, vte_terminal_get_cell_height_scale (terminal));
                         break;
@@ -543,6 +546,9 @@ vte_terminal_set_property (GObject *object,
                 case PROP_BACKSPACE_BINDING:
                         vte_terminal_set_backspace_binding (terminal, (VteEraseBinding)g_value_get_enum (value));
                         break;
+                case PROP_BOLD_IS_BRIGHT:
+                        vte_terminal_set_bold_is_bright (terminal, g_value_get_boolean (value));
+                        break;
                 case PROP_CELL_HEIGHT_SCALE:
                         vte_terminal_set_cell_height_scale (terminal, g_value_get_double (value));
                         break;
@@ -1315,6 +1321,20 @@ vte_terminal_class_init(VteTerminalClass *klass)
                                    VTE_ERASE_AUTO,
                                    (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY));
 
+        /**
+         * VteTerminal:bold-is-bright:
+         *
+         * Whether the SGR 1 attribute also switches to the bright counterpart
+         * of the first 8 palette colors, in addition to making them bold (legacy behavior)
+         * or if SGR 1 only enables bold and leaves the color intact.
+         *
+         * Since: 0.52
+         */
+        pspecs[PROP_BOLD_IS_BRIGHT] =
+                g_param_spec_boolean ("bold-is-bright", NULL, NULL,
+                                      TRUE,
+                                      (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY));
+
         /**
          * VteTerminal:cell-height-scale:
          *
@@ -3008,6 +3028,45 @@ vte_terminal_set_backspace_binding(VteTerminal *terminal,
                 g_object_notify_by_pspec(G_OBJECT(terminal), pspecs[PROP_BACKSPACE_BINDING]);
 }
 
+/**
+ * vte_terminal_get_bold_is_bright:
+ * @terminal: a #VteTerminal
+ *
+ * Checks whether the SGR 1 attribute also switches to the bright counterpart
+ * of the first 8 palette colors, in addition to making them bold (legacy behavior)
+ * or if SGR 1 only enables bold and leaves the color intact.
+ *
+ * Returns: %TRUE if bold also enables bright, %FALSE if not
+ *
+ * Since: 0.52
+ */
+gboolean
+vte_terminal_get_bold_is_bright(VteTerminal *terminal)
+{
+	g_return_val_if_fail(VTE_IS_TERMINAL(terminal), FALSE);
+	return IMPL(terminal)->m_bold_is_bright;
+}
+/**
+ * vte_terminal_set_bold_is_bright:
+ * @terminal: a #VteTerminal
+ * @bold_is_bright: %TRUE if bold should also enable bright
+ *
+ * Sets whether the SGR 1 attribute also switches to the bright counterpart
+ * of the first 8 palette colors, in addition to making them bold (legacy behavior)
+ * or if SGR 1 only enables bold and leaves the color intact.
+ *
+ * Since: 0.52
+ */
+void
+vte_terminal_set_bold_is_bright(VteTerminal *terminal,
+                                gboolean bold_is_bright)
+{
+        g_return_if_fail(VTE_IS_TERMINAL(terminal));
+
+        if (IMPL(terminal)->set_bold_is_bright(bold_is_bright != FALSE))
+                g_object_notify_by_pspec(G_OBJECT(terminal), pspecs[PROP_BOLD_IS_BRIGHT]);
+}
+
 /**
  * vte_terminal_get_char_height:
  * @terminal: a #VteTerminal
diff --git a/src/vtegtk.hh b/src/vtegtk.hh
index ea970a4e..7adadfe7 100644
--- a/src/vtegtk.hh
+++ b/src/vtegtk.hh
@@ -67,6 +67,7 @@ enum {
         PROP_ALLOW_HYPERLINK,
         PROP_AUDIBLE_BELL,
         PROP_BACKSPACE_BINDING,
+        PROP_BOLD_IS_BRIGHT,
         PROP_CELL_HEIGHT_SCALE,
         PROP_CELL_WIDTH_SCALE,
         PROP_CJK_AMBIGUOUS_WIDTH,
diff --git a/src/vteinternal.hh b/src/vteinternal.hh
index bff62e01..57d9599c 100644
--- a/src/vteinternal.hh
+++ b/src/vteinternal.hh
@@ -487,6 +487,7 @@ public:
         gboolean m_margin_bell;
         guint m_bell_margin;
         gboolean m_allow_bold;
+        gboolean m_bold_is_bright;
         gboolean m_deccolm_mode; /* DECCOLM allowed */
         GHashTable *m_tabstops;
         gboolean m_text_modified_flag;
@@ -1216,6 +1217,7 @@ public:
         bool set_allow_hyperlink(bool setting);
         bool set_backspace_binding(VteEraseBinding binding);
         bool set_background_alpha(double alpha);
+        bool set_bold_is_bright(bool setting);
         bool set_cell_height_scale(double scale);
         bool set_cell_width_scale(double scale);
         bool set_cjk_ambiguous_width(int width);
