Index: /FCKeditor/trunk/editor/_source/commandclasses/fckshowblocks.js
===================================================================
--- /FCKeditor/trunk/editor/_source/commandclasses/fckshowblocks.js	(revision 711)
+++ /FCKeditor/trunk/editor/_source/commandclasses/fckshowblocks.js	(revision 712)
@@ -22,7 +22,11 @@
  */
 
-var FCKShowBlockCommand = function( name )
+var FCKShowBlockCommand = function( name, defaultState )
 {
 	this.Name = name ;
+	if ( defaultState != undefined )
+		this._SavedState = defaultState ;
+	else
+		this._SavedState = null ;
 }
 
@@ -60,2 +64,13 @@
 	return FCK_TRISTATE_OFF ;
 }
+
+FCKShowBlockCommand.prototype.SaveState = function()
+{
+	this._SavedState = this.GetState() ;
+}
+
+FCKShowBlockCommand.prototype.RestoreState = function()
+{
+	if ( this._SavedState != null && this.GetState() != this._SavedState )
+		this.Execute() ;
+}
Index: /FCKeditor/trunk/editor/_source/internals/fck.js
===================================================================
--- /FCKeditor/trunk/editor/_source/internals/fck.js	(revision 711)
+++ /FCKeditor/trunk/editor/_source/internals/fck.js	(revision 712)
@@ -550,4 +550,5 @@
 		if ( bIsWysiwyg )
 		{
+			FCKCommands.GetCommand( 'ShowBlocks' ).SaveState() ;
 			if ( !noUndo && FCKBrowserInfo.IsIE )
 				FCKUndo.SaveUndoStep() ;
@@ -813,4 +814,7 @@
 	FCK.OnAfterSetHTML() ;
 
+	// Restore show blocks status.
+	FCKCommands.GetCommand( 'ShowBlocks' ).RestoreState() ;
+
 	// Check if it is not a startup call, otherwise complete the startup.
 	if ( FCK.Status != FCK_STATUS_NOTLOADED )
Index: /FCKeditor/trunk/editor/_source/internals/fckcommands.js
===================================================================
--- /FCKeditor/trunk/editor/_source/internals/fckcommands.js	(revision 711)
+++ /FCKeditor/trunk/editor/_source/internals/fckcommands.js	(revision 712)
@@ -116,5 +116,5 @@
 		case 'InsertOrderedList' : oCommand = new FCKListCommand( 'insertorderedlist' ) ; break ;
 		case 'InsertUnorderedList' : oCommand = new FCKListCommand( 'insertunorderedlist' ) ; break ;
-		case 'ShowBlocks' : oCommand = new FCKShowBlockCommand( 'ShowBlocks' ) ; break ;
+		case 'ShowBlocks' : oCommand = new FCKShowBlockCommand( 'ShowBlocks', FCKConfig.StartupShowBlocks ? FCK_TRISTATE_ON : FCK_TRISTATE_OFF ) ; break ;
 
 		// Generic Undefined command (usually used when a command is under development).
Index: /FCKeditor/trunk/fckconfig.js
===================================================================
--- /FCKeditor/trunk/fckconfig.js	(revision 711)
+++ /FCKeditor/trunk/fckconfig.js	(revision 712)
@@ -39,4 +39,7 @@
 
 FCKConfig.FullPage = false ;
+
+// The following option determines whether the "Show Blocks" feature is enabled or not at startup.
+FCKConfig.StartupShowBlocks = false ;
 
 FCKConfig.Debug = false ;
