Index: /CKEditor/branches/features/paste/_source/plugins/clipboard/plugin.js
===================================================================
--- /CKEditor/branches/features/paste/_source/plugins/clipboard/plugin.js	(revision 4683)
+++ /CKEditor/branches/features/paste/_source/plugins/clipboard/plugin.js	(revision 4684)
@@ -85,6 +85,7 @@
 					// Prevent IE from pasting at the begining of the document.
 					editor.focus();
-
-					if ( !execIECommand( editor, 'paste' ) )
+					
+					if ( !editor.document.getBody().fire( 'beforepaste' )
+						 && !execIECommand( editor, 'paste' ) )
 					{
 						editor.fire( 'pasteDialog' );
@@ -172,10 +173,4 @@
 		var pastebin = new CKEDITOR.dom.element( mode == 'text' ? 'textarea' : 'div', doc );
 		pastebin.setAttribute( 'id', 'cke_pastebin' );
-
-		// IE6/7 require the bin to at least contain one piece of text otherwise the
-		// paste is treated as unauthorized.
-		if( mode != 'text' && CKEDITOR.env.ie )
-			pastebin.append( new CKEDITOR.dom.text( '\u00A0', doc ) );
-
 		doc.getBody().append( pastebin );
 
@@ -332,30 +327,26 @@
 				editor.on( 'key', onKey, editor );
 
-				if( editor.config.autoDetectPaste )
-				{
-					var mode = editor.config.forcePasteAsPlainText ? 'text' : 'html';
-					editor.on( 'contentDom', function()
-					{
-						var body = editor.document.getBody();
-						body.on( ( mode == 'text' && CKEDITOR.env.ie ) ?
-						          'paste' : 'beforepaste',
-								function( evt )
+				var mode = editor.config.forcePasteAsPlainText ? 'text' : 'html';
+				editor.on( 'contentDom', function()
+				{
+					var body = editor.document.getBody();
+					body.on( ( mode == 'text' && CKEDITOR.env.ie ) ?
+					          'paste' : 'beforepaste',
+							function( evt )
+							{
+								getClipboardData.call( editor, evt, mode, function ( data )
 								{
-									getClipboardData.call( editor, evt, mode, function ( data )
-									{
-										// The very last guard to make sure the
-										// paste has really happened.
-										if ( !data )
-											return;
-
-
-										var dataTransfer = {};
-										dataTransfer[ mode ] = data;
-										editor.fire( 'paste', dataTransfer );
-									} );
+									// The very last guard to make sure the
+									// paste has successfully happened.
+									if ( !data )
+										return;
+
+									var dataTransfer = {};
+									dataTransfer[ mode ] = data;
+									editor.fire( 'paste', dataTransfer );
 								} );
-
-					} );
-				}
+							} );
+
+				} );
 
 				// If the "contextmenu" plugin is loaded, register the listeners.
@@ -380,15 +371,3 @@
 			}
 		});
-
-
 })();
-
-/**
- * Whether to automatically choose the right format when pasting based on the
- * detection of content text OR just leave it to the browser's default paste behavior.
- * @type Boolean
- * @default true
- * @example
- * config.autoDetectPaste = false;
- */
-CKEDITOR.config.autoDetectPaste = true;
Index: /CKEditor/branches/features/paste/_source/plugins/pastefromword/plugin.js
===================================================================
--- /CKEditor/branches/features/paste/_source/plugins/pastefromword/plugin.js	(revision 4683)
+++ /CKEditor/branches/features/paste/_source/plugins/pastefromword/plugin.js	(revision 4684)
@@ -30,10 +30,12 @@
 				{
 					forceFromWord = 1;
-					editor.fire( 'pasteDialog' );
-					editor.on( 'dialogHide', function ( evt )
+					if( editor.execCommand( 'paste' ) === false )
 					{
-						evt.removeListener();
-						resetFromWord();
-					} );
+						editor.on( 'dialogHide', function ( evt )
+						{
+							evt.removeListener();
+							resetFromWord();
+						} );
+					}
 				}
 			} );
