Index: src/wp-admin/css/customize-controls.css
===================================================================
--- src/wp-admin/css/customize-controls.css	(revision 29275)
+++ src/wp-admin/css/customize-controls.css	(working copy)
@@ -88,6 +88,16 @@
 	border-bottom: 1px solid #eeeeee;
 }
 
+#customize-info .accordion-section-title:after,
+#customize-controls .accordion-section-title:after {
+	content: "\f347";
+}
+
+#customize-info.open .accordion-section-title:after,
+#customize-controls .open .accordion-section-title:after {
+	content: "\f343";
+}
+
 #customize-theme-controls .accordion-section-content {
 	color: #555555;
 	background: white;
@@ -137,12 +147,12 @@
 	margin: 0;
 }
 
-.control-section.control-panel > .accordion-section-title:after {
-	content: "\f139";
+#customize-theme-controls .control-section.control-panel > .accordion-section-title:after {
+	content: "\f345";
 }
 
-.rtl .control-section.control-panel > .accordion-section-title:after {
-	content: "\f141";
+.rtl #customize-theme-controls .control-section.control-panel > .accordion-section-title:after {
+	content: "\f341";
 }
 
 .accordion-sub-container.control-panel-content {
Index: src/wp-admin/customize.php
===================================================================
--- src/wp-admin/customize.php	(revision 29275)
+++ src/wp-admin/customize.php	(working copy)
@@ -161,12 +161,9 @@
 
 			<div id="customize-theme-controls"><ul>
 				<?php
-				foreach ( $wp_customize->panels() as $panel ) {
-					$panel->maybe_render();
+				foreach ( $wp_customize->containers() as $container ) {
+					$container->maybe_render();
 				}
-				foreach ( $wp_customize->sections() as $section ) {
-					$section->maybe_render();
-				}
 				?>
 			</ul></div>
 		</div>
Index: src/wp-includes/class-wp-customize-manager.php
===================================================================
--- src/wp-includes/class-wp-customize-manager.php	(revision 29275)
+++ src/wp-includes/class-wp-customize-manager.php	(working copy)
@@ -45,6 +45,7 @@
 	public $widgets;
 
 	protected $settings = array();
+	protected $containers = array();
 	protected $panels   = array();
 	protected $sections = array();
 	protected $controls = array();
@@ -329,6 +330,18 @@
 	}
 
 	/**
+	 * Get the registered containers.
+	 *
+	 * @since 4.0.0
+	 * @access public
+	 *
+	 * @return array Sorted panels and top-level sections.
+	 */
+	public function containers() {
+		return $this->containers;
+	}
+
+	/**
 	 * Checks if the current theme is active.
 	 *
 	 * @since 3.4.0
@@ -891,6 +904,10 @@
 			$panels[] = $panel;
 		}
 		$this->panels = $panels;
+
+		// Sort panels and top-level sections together.
+		$this->containers = array_merge( $this->panels, $this->sections );
+		uasort( $this->containers, array( $this, '_cmp_priority' ) );
 	}
 
 	/**
Index: src/wp-includes/class-wp-customize-widgets.php
===================================================================
--- src/wp-includes/class-wp-customize-widgets.php	(revision 29275)
+++ src/wp-includes/class-wp-customize-widgets.php	(working copy)
@@ -436,6 +436,7 @@
 		$this->manager->add_panel( 'widgets', array(
 			'title' => __( 'Widgets' ),
 			'description' => __( 'Widgets are independent sections of content that can be placed into widgetized areas provided by your theme (commonly called sidebars).' ),
+			'priority' => 30,
 		) );
 
 		foreach ( $sidebars_widgets as $sidebar_id => $sidebar_widget_ids ) {
