Index: /CKEditor/trunk/CHANGES.html
===================================================================
--- /CKEditor/trunk/CHANGES.html	(revision 5242)
+++ /CKEditor/trunk/CHANGES.html	(revision 5243)
@@ -69,4 +69,5 @@
 		<li><a href="http://dev.fckeditor.net/ticket/5171">#5171</a> : Dialogs contains lists don't have proper voice labels.</li>
 		<li><a href="http://dev.fckeditor.net/ticket/4791">#4791</a> : Can't place cusor inside a form that end with a checkbox/radio.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4479">#4479</a> : Style combo doesn't reflect the selection until it's first opened.</li>
 	</ul>
 	<h3>
Index: /CKEditor/trunk/_source/plugins/stylescombo/plugin.js
===================================================================
--- /CKEditor/trunk/_source/plugins/stylescombo/plugin.js	(revision 5242)
+++ /CKEditor/trunk/_source/plugins/stylescombo/plugin.js	(revision 5243)
@@ -17,5 +17,6 @@
 				lang = editor.lang.stylesCombo,
 				pluginPath = this.path,
-				styles;
+				styles = {},
+				stylesList = [];
 
 			if ( !stylesManager )
@@ -30,4 +31,36 @@
 						comboStylesSet.slice( 1 ).join( ':' ) :
 						pluginPath + 'styles/' + styleSetName + '.js', '' );
+
+			function loadStylesSet( callback )
+		   {
+			   CKEDITOR.stylesSet.load( styleSetName, function( stylesSet )
+				   {
+					   if ( !stylesList.length )
+					   {
+						   var stylesDefinitions = stylesSet[ styleSetName ],
+							   style,
+							   styleName;
+
+						   // Put all styles into an Array.
+						   for ( var i = 0 ; i < stylesDefinitions.length ; i++ )
+						   {
+							   var styleDefinition = stylesDefinitions[ i ];
+
+							   styleName = styleDefinition.name;
+
+							   style = styles[ styleName ] = new CKEDITOR.style( styleDefinition );
+							   style._name = styleName;
+
+							   stylesList.push( style );
+						   }
+
+						   // Sorts the Array, so the styles get grouped
+						   // by type.
+						   stylesList.sort( sortStyles );
+					   }
+
+					   callback && callback();
+				   });
+		   }
 
 			editor.ui.addRichCombo( 'Styles',
@@ -48,34 +81,12 @@
 						var combo = this;
 
-						CKEDITOR.stylesSet.load( styleSetName, function( stylesSet )
+						loadStylesSet( function()
 							{
-								var stylesDefinitions = stylesSet[ styleSetName ],
-									style,
-									styleName,
-									stylesList = [];
-
-								styles = {};
-
-								// Put all styles into an Array.
-								for ( var i = 0 ; i < stylesDefinitions.length ; i++ )
-								{
-									var styleDefinition = stylesDefinitions[ i ];
-
-									styleName = styleDefinition.name;
-
-									style = styles[ styleName ] = new CKEDITOR.style( styleDefinition );
-									style._name = styleName;
-
-									stylesList.push( style );
-								}
-
-								// Sorts the Array, so the styles get grouped
-								// by type.
-								stylesList.sort( sortStyles );
+								var style, styleName;
 
 								// Loop over the Array, adding all items to the
 								// combo.
 								var lastType;
-								for ( i = 0 ; i < stylesList.length ; i++ )
+								for ( var i = 0 ; i < stylesList.length ; i++ )
 								{
 									style = stylesList[ i ];
@@ -192,4 +203,6 @@
 					}
 				});
+
+			editor.on( 'instanceReady', function() { loadStylesSet(); } );
 		}
 	});
