diff --git a/wp-includes/class-wp-customize-control.php b/wp-includes/class-wp-customize-control.php
index 994ff90..acbd298 100644
--- a/wp-includes/class-wp-customize-control.php
+++ b/wp-includes/class-wp-customize-control.php
@@ -546,9 +546,18 @@ class WP_Customize_Control {
 
 				<select id="<?php echo esc_attr( $input_id ); ?>" <?php echo $describedby_attr; ?> <?php $this->link(); ?>>
 					<?php
-					foreach ( $this->choices as $value => $label ) {
-						echo '<option value="' . esc_attr( $value ) . '"' . selected( $this->value(), $value, false ) . '>' . $label . '</option>';
-					}
+						foreach ( $this->choices as $value => $data ) {
+							if ( is_array( $data ) && ! empty( $data ) ) {
+								echo '<optgroup label="' . esc_attr( $value ) . '">';
+									foreach ( $data as $optgroup_val => $optgroup_data ) {
+
+										echo '<option value="' . esc_attr( $optgroup_val ) . '"' . selected( $this->value(), $value, false ) . '>' . $optgroup_data . '</option>';
+									}
+								echo '</optgroup>';
+							} else {
+								echo '<option value="' . esc_attr( $value ) . '"' . selected( $this->value(), $value, false ) . '>' . $data . '</option>';
+							}
+						}
 					?>
 				</select>
 				<?php
