Index: CKEditor/trunk/CHANGES.html
===================================================================
--- CKEditor/trunk/CHANGES.html	(revision 6622)
+++ CKEditor/trunk/CHANGES.html	(revision 6624)
@@ -37,5 +37,5 @@
 	<h3>
 			CKEditor 3.5.3 (SVN)</h3>
-	<p>
+	<p> 
 			New features:</p>
 	<ul>
@@ -96,4 +96,5 @@
 		<li><a href="http://dev.ckeditor.com/ticket/7359">#7359</a> : Apply block style to list item without editor focus problematic.</li>
 		<li><a href="http://dev.ckeditor.com/ticket/6658">#6658</a> : [IE] Pasting text from MS-Word with one or more tab between list items was failing.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/7433">#7433</a> : [IE9] Enter mode br at the end of block breaks due to an IE9 regression.</li>
 		<li>Updated the following language files:<ul>
 			<li><a href="http://dev.ckeditor.com/ticket/7124">#7124</a> : Czech;</li>
Index: CKEditor/trunk/_source/plugins/selection/plugin.js
===================================================================
--- CKEditor/trunk/_source/plugins/selection/plugin.js	(revision 6622)
+++ CKEditor/trunk/_source/plugins/selection/plugin.js	(revision 6624)
@@ -678,5 +678,6 @@
 
 						// Gets the element that encloses the range entirely.
-						var parent = range.parentElement();
+						var parent = range.parentElement(),
+							doc = parent.ownerDocument;
 
 						// Empty parent element, e.g. <i>^</i>
@@ -708,5 +709,19 @@
 								startIndex = index + 1;
 							else
-								return { container : parent, offset : getNodeIndex( child ) };
+							{
+								// IE9 report wrong measurement with compareEndPoints when range anchors between two BRs.
+								// e.g. <p>text<br />^<br /></p> (#7433)
+								if ( CKEDITOR.env.ie9Compat && child.tagName == 'BR' )
+								{
+									var bmId = 'cke_range_marker';
+									range.execCommand( 'CreateBookmark', false, bmId );
+									child = doc.getElementsByName( bmId )[ 0 ];
+									var offset = getNodeIndex( child );
+									parent.removeChild( child );
+									return { container : parent, offset : offset };
+								}
+								else
+									return { container : parent, offset : getNodeIndex( child ) };
+							}
 						}
 
