Index: /CKEditor/trunk/CHANGES.html
===================================================================
--- /CKEditor/trunk/CHANGES.html	(revision 4604)
+++ /CKEditor/trunk/CHANGES.html	(revision 4605)
@@ -86,4 +86,5 @@
 		<li><a href="http://dev.fckeditor.net/ticket/4736">#4736</a> : Fixed 'Page Up/Page Down' keystroke in standard compliant wysiwyg is not working.</li>
 		<li><a href="http://dev.fckeditor.net/ticket/4725">#4725</a> : Fixed hitting 'enter' before html comment node produces an JavaScript error.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4522">#4522</a> : Fixed unable to redo when typing after insert an image with relative url.</li>
 	</ul>
 	<h3>
Index: /CKEditor/trunk/_source/plugins/undo/plugin.js
===================================================================
--- /CKEditor/trunk/_source/plugins/undo/plugin.js	(revision 4604)
+++ /CKEditor/trunk/_source/plugins/undo/plugin.js	(revision 4605)
@@ -131,9 +131,22 @@
 	}
 
+	// Attributes that browser may changing them when setting via innerHTML. 
+	var protectedAttrs = /\b(?:href|src|name)="[^"]*?"/gi;
+
 	Image.prototype =
 	{
 		equals : function( otherImage, contentOnly )
 		{
-			if ( this.contents != otherImage.contents )
+			var thisContents = this.contents,
+				otherContents = otherImage.contents;
+
+			// For IE6/7 : Comparing only the protected attribute values but not the original ones.(#4522)
+			if( CKEDITOR.env.ie && ( CKEDITOR.env.ie7Compat || CKEDITOR.env.ie6Compat ) )
+			{
+				thisContents = thisContents.replace( protectedAttrs, '' );
+				otherContents = otherContents.replace( protectedAttrs, '' );
+			}
+
+			if( thisContents != otherContents )
 				return false;
 
