Index: /FCKeditor/trunk/editor/_source/internals/fck.js
===================================================================
--- /FCKeditor/trunk/editor/_source/internals/fck.js	(revision 873)
+++ /FCKeditor/trunk/editor/_source/internals/fck.js	(revision 874)
@@ -435,7 +435,8 @@
 	RedirectNamedCommands : new Object(),
 
-	ExecuteNamedCommand : function( commandName, commandParameter, noRedirect )
-	{
-		FCKUndo.SaveUndoStep() ;
+	ExecuteNamedCommand : function( commandName, commandParameter, noRedirect, noSaveUndo )
+	{
+		if ( !noSaveUndo )
+			FCKUndo.SaveUndoStep() ;
 
 		if ( !noRedirect && FCK.RedirectNamedCommands[ commandName ] != null )
@@ -448,4 +449,5 @@
 		}
 
+		if ( !noSaveUndo )
 		FCKUndo.SaveUndoStep() ;
 	},
Index: /FCKeditor/trunk/editor/_source/internals/fck_gecko.js
===================================================================
--- /FCKeditor/trunk/editor/_source/internals/fck_gecko.js	(revision 873)
+++ /FCKeditor/trunk/editor/_source/internals/fck_gecko.js	(revision 874)
@@ -396,10 +396,10 @@
 }
 
-FCK.CreateLink = function( url )
+FCK.CreateLink = function( url, noUndo )
 {
 	// Creates the array that will be returned. It contains one or more created links (see #220).
 	var aCreatedLinks = new Array() ;
 
-	FCK.ExecuteNamedCommand( 'Unlink' ) ;
+	FCK.ExecuteNamedCommand( 'Unlink', null, false, !!noUndo ) ;
 
 	if ( url.length > 0 )
@@ -409,5 +409,5 @@
 
 		// Use the internal "CreateLink" command to create the link.
-		FCK.ExecuteNamedCommand( 'CreateLink', sTempUrl ) ;
+		FCK.ExecuteNamedCommand( 'CreateLink', sTempUrl, false, !!noUndo ) ;
 
 		// Retrieve the just created links using XPath.
Index: /FCKeditor/trunk/editor/_source/internals/fck_ie.js
===================================================================
--- /FCKeditor/trunk/editor/_source/internals/fck_ie.js	(revision 873)
+++ /FCKeditor/trunk/editor/_source/internals/fck_ie.js	(revision 874)
@@ -353,5 +353,5 @@
 }
 
-FCK.CreateLink = function( url )
+FCK.CreateLink = function( url, noUndo )
 {
 	// Creates the array that will be returned. It contains one or more created links (see #220).
@@ -359,5 +359,5 @@
 
 	// Remove any existing link in the selection.
-	FCK.ExecuteNamedCommand( 'Unlink' ) ;
+	FCK.ExecuteNamedCommand( 'Unlink', null, false, !!noUndo ) ;
 
 	if ( url.length > 0 )
@@ -386,5 +386,5 @@
 
 		// Use the internal "CreateLink" command to create the link.
-		FCK.ExecuteNamedCommand( 'CreateLink', sTempUrl ) ;
+		FCK.ExecuteNamedCommand( 'CreateLink', sTempUrl, false, !!noUndo ) ;
 
 		// Look for the just create link.
