Index: /CKEditor/trunk/_source/core/tools.js
===================================================================
--- /CKEditor/trunk/_source/core/tools.js	(revision 7011)
+++ /CKEditor/trunk/_source/core/tools.js	(revision 7012)
@@ -688,4 +688,34 @@
 
 		/**
+		 * Convert the specified CSS length value to the calculated pixel length inside this page.
+		 * <strong>Note:</strong> Percentage based value is left intact.
+		 * @param {String} cssLength CSS length value.
+		 */
+		convertToPx : ( function ()
+			{
+				var calculator;
+
+				return function( cssLength )
+				{
+					if ( !calculator )
+					{
+						calculator = CKEDITOR.dom.element.createFromHtml(
+								'<div style="position:absolute;left:-9999px;' +
+								'top:-9999px;margin:0px;padding:0px;border:0px;"' +
+								'></div>', CKEDITOR.document );
+						CKEDITOR.document.getBody().append( calculator );
+					}
+
+					if ( !/%$/.test( cssLength ) )
+					{
+						calculator.setStyle( 'width', cssLength );
+						return calculator.$.clientWidth;
+					}
+
+					return cssLength;
+				};
+			} )(),
+
+		/**
 		 * String specified by {@param str} repeats {@param times} times.
 		 * @param str
Index: /CKEditor/trunk/_source/plugins/fakeobjects/plugin.js
===================================================================
--- /CKEditor/trunk/_source/plugins/fakeobjects/plugin.js	(revision 7011)
+++ /CKEditor/trunk/_source/plugins/fakeobjects/plugin.js	(revision 7012)
@@ -34,8 +34,8 @@
 
 						if ( width )
-							realElement.attributes.width = width;
+							realElement.attributes.width = CKEDITOR.tools.convertToPx( width );
 
 						if ( height )
-							realElement.attributes.height = height;
+							realElement.attributes.height = CKEDITOR.tools.convertToPx( height );
 					}
 				}
Index: /CKEditor/trunk/_source/plugins/iframe/dialogs/iframe.js
===================================================================
--- /CKEditor/trunk/_source/plugins/iframe/dialogs/iframe.js	(revision 7011)
+++ /CKEditor/trunk/_source/plugins/iframe/dialogs/iframe.js	(revision 7012)
@@ -51,24 +51,4 @@
 			minWidth : 350,
 			minHeight : 260,
-			onLoad : function()
-			{
-				var dialog = this,
-					styles = dialog.getContentElement( 'advanced', 'advStyles' );
-
-				styles && styles.on( 'change', function()
-					{
-						// Synchronize width value.
-						var width = this.getStyle( 'width', '' ),
-							txtWidth = dialog.getContentElement( 'info', 'width' );
-
-						txtWidth && txtWidth.setValue( width, true );
-
-						// Synchronize height value.
-						var height = this.getStyle( 'height', '' ),
-							txtHeight = dialog.getContentElement( 'info', 'height' );
-
-						txtHeight && txtHeight.setValue( height, true );
-					});
-			},
 			onShow : function()
 			{
@@ -84,13 +64,6 @@
 					this.iframeNode = iframeNode;
 
-					this.setupContent( iframeNode, fakeImage );
+					this.setupContent( iframeNode );
 				}
-
-				// Call the onChange method for the widht and height fields so
-				// they get reflected into the Advanced tab.
-				var widthInput = this.getContentElement( 'info', 'width' ),
-					heightInput = this.getContentElement( 'info', 'height' );
-				widthInput && widthInput.onChange();
-				heightInput && heightInput.onChange();
 			},
 			onOk : function()
@@ -165,10 +138,4 @@
 										var val = this.getValue();
 										val && ( extraStyles.width = val );
-									},
-									onChange : function()
-									{
-										var styles = this.getDialog().getContentElement( 'advanced', 'advStyles' ),
-											value = this.getValue();
-										styles && styles.updateStyle( 'width', value );
 									}
 								},
@@ -191,10 +158,4 @@
 										var val = this.getValue();
 										val && ( extraStyles.height = val );
-									},
-									onChange : function()
-									{
-										var styles = this.getDialog().getContentElement( 'advanced', 'advStyles' ),
-											value = this.getValue();
-										styles && styles.updateStyle( 'height', value );
 									}
 								},
Index: /CKEditor/trunk/_source/plugins/pastefromword/filter/default.js
===================================================================
--- /CKEditor/trunk/_source/plugins/pastefromword/filter/default.js	(revision 7011)
+++ /CKEditor/trunk/_source/plugins/pastefromword/filter/default.js	(revision 7012)
@@ -262,6 +262,5 @@
 										// Deal with component/short-hand form.
 										var values = margin.split( ' ' );
-										margin = plugin.utils.convertToPx( values[ 3 ] || values[ 1 ] || values [ 0 ] );
-										margin = parseInt( margin, 10 );
+										margin = CKEDITOR.tools.convertToPx( values[ 3 ] || values[ 1 ] || values [ 0 ] );
 
 										// Figure out the indent unit by checking the first time of incrementation.
@@ -311,25 +310,4 @@
 			},
 
-			// Convert various length units to 'px' in ignorance of DPI.
-			convertToPx : ( function ()
-			{
-				var calculator = CKEDITOR.dom.element.createFromHtml(
-								'<div style="position:absolute;left:-9999px;' +
-								'top:-9999px;margin:0px;padding:0px;border:0px;"' +
-								'></div>', CKEDITOR.document );
-				CKEDITOR.document.getBody().append( calculator );
-
-				return function( cssLength )
-				{
-					if ( cssLengthRelativeUnit.test( cssLength ) )
-					{
-						calculator.setStyle( 'width', cssLength );
-						return calculator.$.clientWidth + 'px';
-					}
-
-					return cssLength;
-				};
-			} )(),
-
 			// Providing a shorthand style then retrieve one or more style component values.
 			getStyleComponents : ( function()
@@ -414,5 +392,5 @@
 									{
 										var margin = val.split( ' ' )[ 1 ].match( cssLengthRelativeUnit );
-										margin && ( previousListItemMargin = parseInt( plugin.utils.convertToPx( margin[ 0 ] ), 10 ) );
+										margin && ( previousListItemMargin = CKEDITOR.tools.convertToPx( margin[ 0 ] ) );
 									} ],
 									( level == 1 ? [ 'mso-list', null, function( val )
@@ -779,5 +757,9 @@
 				containsNothingButSpaces = this.utils.isContainingOnlySpaces,
 				resolveListItem = this.utils.resolveList,
-				convertToPx = this.utils.convertToPx,
+				convertToPx = function( value )
+					{
+						value = CKEDITOR.tools.convertToPx( value );
+						return isNaN( value ) ? value : value + 'px';
+					},
 				getStyleComponents = this.utils.getStyleComponents,
 				listDtdParents = this.utils.listDtdParents,
