Index: /CKEditor/trunk/CHANGES.html
===================================================================
--- /CKEditor/trunk/CHANGES.html	(revision 3998)
+++ /CKEditor/trunk/CHANGES.html	(revision 3999)
@@ -205,4 +205,5 @@
 			skin was wrapping improperly in some languages.</li>
 		<li><a href="http://dev.fckeditor.net/ticket/4119">#4119</a> : Unable to edit image link with image dialog.</li> 
+		<li><a href="http://dev.fckeditor.net/ticket/4117">#4117</a> : Fixed dialog error when transforming image into button.</li>
 		<li><a href="http://dev.fckeditor.net/ticket/4058">#4058</a> : [FF] wysiwyg mode is sometimes not been activated.</li>
 		<li><a href="http://dev.fckeditor.net/ticket/4114">#4114</a> : [IE] RTE + IE6/IE7 Quirks = dialog mispositoned.</li>
Index: /CKEditor/trunk/_source/plugins/image/dialogs/image.js
===================================================================
--- /CKEditor/trunk/_source/plugins/image/dialogs/image.js	(revision 3998)
+++ /CKEditor/trunk/_source/plugins/image/dialogs/image.js	(revision 3999)
@@ -265,6 +265,5 @@
 				if ( this.imageEditMode )
 				{
-					var imgTagName = this.imageEditMode,
-						removeObj = this.imageElement;
+					var imgTagName = this.imageEditMode;
 
 					// Image dialog and Input element.
@@ -275,7 +274,5 @@
 						this.imageElement = editor.document.createElement( 'img' );
 						this.imageElement.setAttribute( 'alt', '' );
-						removeObj.insertBeforeMe( this.imageElement );
-						removeObj.remove( false );
-
+						editor.insertElement( this.imageElement );
 					}
 					// ImageButton dialog and Image element.
@@ -291,6 +288,5 @@
 							}
 						);
-						removeObj.insertBeforeMe( this.imageElement );
-						removeObj.remove( false );
+						editor.insertElement( this.imageElement );
 					}
 				}
@@ -324,9 +320,9 @@
 						if ( !this.linkEditMode )
 						{
-							this.linkElement.append( this.imageElement, false );
-							editor.insertElement( this.linkElement );
+							editor.insertElement(this.linkElement);
+							this.linkElement.append(this.imageElement, false);
 						}
-						else 	//Link already exists, image not.
-							this.linkElement.append( this.imageElement, false );
+						else	 //Link already exists, image not.
+							editor.insertElement(this.imageElement );
 					}
 					else
@@ -338,10 +334,13 @@
 					if ( !this.linkEditMode && this.addLink )
 					{
-						this.imageElement.insertBeforeMe( this.linkElement );
+						editor.insertElement( this.linkElement );
 						this.imageElement.appendTo( this.linkElement );
 					}
 					//Remove Link, Image exists.
 					else if ( this.linkEditMode && !this.addLink )
-						this.linkElement.remove( true );
+					{
+						editor.getSelection().selectElement( this.linkElement );
+						editor.insertElement( this.imageElement );
+					}
 				}
 			},
Index: /CKEditor/trunk/_source/plugins/selection/plugin.js
===================================================================
--- /CKEditor/trunk/_source/plugins/selection/plugin.js	(revision 3998)
+++ /CKEditor/trunk/_source/plugins/selection/plugin.js	(revision 3999)
@@ -784,5 +784,5 @@
 			if ( this.isLocked )
 			{
-				var range = new CKEDITOR.dom.range();
+				var range = new CKEDITOR.dom.range( this.document );
 				range.setStartBefore( element );
 				range.setEndAfter( element );
