Index: /CKEditor/trunk/_source/plugins/colorbutton/plugin.js
===================================================================
--- /CKEditor/trunk/_source/plugins/colorbutton/plugin.js	(revision 3326)
+++ /CKEditor/trunk/_source/plugins/colorbutton/plugin.js	(revision 3327)
@@ -89,4 +89,5 @@
 					var style = new CKEDITOR.style( config['colorButton_' + type + 'Style'], { color : color || '#000' } );
 
+					editor.fire( 'saveSnapshot' );
 					if ( color )
 						style.apply( editor.document );
Index: /CKEditor/trunk/_source/plugins/font/plugin.js
===================================================================
--- /CKEditor/trunk/_source/plugins/font/plugin.js	(revision 3326)
+++ /CKEditor/trunk/_source/plugins/font/plugin.js	(revision 3327)
@@ -56,4 +56,5 @@
 				{
 					editor.focus();
+					editor.fire( 'saveSnapshot' );
 
 					if ( saveRanges )
Index: /CKEditor/trunk/_source/plugins/format/plugin.js
===================================================================
--- /CKEditor/trunk/_source/plugins/format/plugin.js	(revision 3326)
+++ /CKEditor/trunk/_source/plugins/format/plugin.js	(revision 3327)
@@ -54,4 +54,5 @@
 				{
 					editor.focus();
+					editor.fire( 'saveSnapshot' );
 
 					if ( saveRanges )
Index: /CKEditor/trunk/_source/plugins/stylescombo/plugin.js
===================================================================
--- /CKEditor/trunk/_source/plugins/stylescombo/plugin.js	(revision 3326)
+++ /CKEditor/trunk/_source/plugins/stylescombo/plugin.js	(revision 3327)
@@ -94,4 +94,5 @@
 					{
 						editor.focus();
+						editor.fire( 'saveSnapshot' );
 
 						var style = styles[ value ],
Index: /CKEditor/trunk/_source/plugins/undo/plugin.js
===================================================================
--- /CKEditor/trunk/_source/plugins/undo/plugin.js	(revision 3326)
+++ /CKEditor/trunk/_source/plugins/undo/plugin.js	(revision 3327)
@@ -63,4 +63,10 @@
 			editor.on( 'beforeCommandExec', recordCommand );
 			editor.on( 'afterCommandExec', recordCommand );
+
+			// Save snapshots before doing custom changes.
+			editor.on( 'saveSnapshot', function()
+				{
+					undoManager.save();
+				});
 
 			// Make the undo manager available only in wysiwyg mode.
