Index: CKEditor/trunk/_source/core/dom/walker.js
===================================================================
--- CKEditor/trunk/_source/core/dom/walker.js	(revision 6380)
+++ CKEditor/trunk/_source/core/dom/walker.js	(revision 6382)
@@ -1,3 +1,3 @@
-﻿/*
+﻿﻿﻿/*
 Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
@@ -431,9 +431,11 @@
 
 	var tailNbspRegex = /^[\t\r\n ]*(?:&nbsp;|\xa0)$/,
-		isNotWhitespaces = CKEDITOR.dom.walker.whitespaces( 1 ),
-		isNotBookmark = CKEDITOR.dom.walker.bookmark( 0, 1 ),
-		fillerEvaluator = function( element )
-		{
-			return isNotBookmark( element ) && isNotWhitespaces( element );
+		isWhitespaces = CKEDITOR.dom.walker.whitespaces(),
+		isBookmark = CKEDITOR.dom.walker.bookmark(),
+		toSkip = function( node )
+		{
+			return isBookmark( node )
+					|| isWhitespaces( node )
+					|| node.type == CKEDITOR.NODE_ELEMENT && node.getName() in CKEDITOR.dtd.$removeEmpty;
 		};
 
@@ -441,5 +443,9 @@
 	CKEDITOR.dom.element.prototype.getBogus = function()
 	{
-		var tail = this.getLast( fillerEvaluator );
+		// Bogus are not always at the end, e.g. <p><strong>text<br /></strong></p> (#7070).
+		var tail = this;
+		do { tail = tail.getPreviousSourceNode(); }
+		while ( toSkip( tail ) )
+
 		if ( tail && ( !CKEDITOR.env.ie ? tail.is && tail.is( 'br' )
 				: tail.getText && tailNbspRegex.test( tail.getText() ) ) )
