Index: /CKEditor/trunk/_source/plugins/list/plugin.js
===================================================================
--- /CKEditor/trunk/_source/plugins/list/plugin.js	(revision 7583)
+++ /CKEditor/trunk/_source/plugins/list/plugin.js	(revision 7584)
@@ -974,29 +974,4 @@
 								evt.cancel();
 							}
-							else
-							{
-								var list = path.contains( listNodeNames ), li;
-								// Backspace pressed at the start of list, in first list item. (#9129)
-								if ( list && range.checkBoundaryOfElement( list, CKEDITOR.START ) )
-								{
-									li = path.contains( CKEDITOR.dtd.$listItem );
-
-									// Outdent the list item if:
-									// 1. Inside of empty list item.
-									// 2. No content to merge before.
-									if ( range.checkBoundaryOfElement( li, CKEDITOR.START ) )
-									{
-										previous = list.getPrevious( nonEmpty );
-										if ( range.checkBoundaryOfElement( li, CKEDITOR.END ) ||
-										     !previous ||
-										     // A special case of "no content to merge before"
-										     previous.is( 'table' ) )
-										{
-											editor.execCommand( 'outdent' );
-											evt.cancel();
-										}
-									}
-								}
-							}
 						}
 						else
Index: /CKEditor/trunk/_source/plugins/selection/plugin.js
===================================================================
--- /CKEditor/trunk/_source/plugins/selection/plugin.js	(revision 7583)
+++ /CKEditor/trunk/_source/plugins/selection/plugin.js	(revision 7584)
@@ -82,11 +82,5 @@
 		{
 			var body = range.document.getBody();
-
-			if ( node.isBlockBoundary() &&
-			     range.checkBoundaryOfElement( body, CKEDITOR.START ) &&
-			     range.checkBoundaryOfElement( body, CKEDITOR.END ) )
-			{
-				return true;
-			}
+			return !node.is( 'body' ) && body.getChildCount() == 1;
 		}
 
Index: /CKEditor/trunk/_source/plugins/wysiwygarea/plugin.js
===================================================================
--- /CKEditor/trunk/_source/plugins/wysiwygarea/plugin.js	(revision 7583)
+++ /CKEditor/trunk/_source/plugins/wysiwygarea/plugin.js	(revision 7584)
@@ -768,7 +768,7 @@
 						domDocument.getDocumentElement().addClass( domDocument.$.compatMode );
 						// Override keystroke behaviors.
-						editor.on( 'key', function( evt )
+						editable && domDocument.on( 'keydown', function( evt )
 						{
-							var keyCode = evt.data.keyCode;
+							var keyCode = evt.data.getKeystroke();
 
 							// Backspace OR Delete.
@@ -800,5 +800,5 @@
 									editor.fire( 'saveSnapshot' );
 
-									evt.cancel();
+									evt.data.preventDefault();
 								}
 								else
@@ -824,5 +824,5 @@
 										editor.fire( 'saveSnapshot' );
 
-										evt.cancel();
+										evt.data.preventDefault();
 									}
 									else if ( path.blockLimit.is( 'td' ) &&
@@ -844,5 +844,5 @@
 										editor.fire( 'saveSnapshot' );
 
-										evt.cancel();
+										evt.data.preventDefault();
 									}
 
@@ -866,5 +866,5 @@
 										range[ keyCode == 33 ? 'moveToElementEditStart' : 'moveToElementEditEnd']( body );
 										range.select();
-										evt.cancel();
+										evt.data.preventDefault();
 									}
 								}
