Index: _source/plugins/enterkey/plugin.js =================================================================== --- _source/plugins/enterkey/plugin.js (revision 6348) +++ _source/plugins/enterkey/plugin.js (revision ) @@ -60,29 +60,31 @@ var isStartOfBlock = splitInfo.wasStartOfBlock, isEndOfBlock = splitInfo.wasEndOfBlock; - var node; + var node, + newBlock, + newBlockDir; // If this is a block under a list item, split it as well. (#1647) - if ( nextBlock ) + if ( nextBlock && ( node = nextBlock.getParent() ) && node.is( 'li' ) ) { - node = nextBlock.getParent(); - if ( node.is( 'li' ) ) - { - nextBlock.breakParent( node ); + nextBlock.breakParent( node ); + newBlock = nextBlock.clone(); + !CKEDITOR.env.ie && newBlock.appendBogus(); + newBlock.move( nextBlock.getPrevious() ); - nextBlock.move( nextBlock.getNext(), 1 ); + nextBlock.move( nextBlock.getNext(), 1 ); + range.moveToElementEditStart( nextBlock ); - } + } - } else if ( previousBlock && ( node = previousBlock.getParent() ) && node.is( 'li' ) ) { previousBlock.breakParent( node ); - range.moveToElementEditStart( previousBlock.getNext() ); + newBlock = previousBlock.getNext(); previousBlock.move( previousBlock.getPrevious() ); + range.moveToElementEditStart( newBlock ); } - // If we have both the previous and next blocks, it means that the // boundaries were on separated blocks, or none of them where on the // block limits (start/end). - if ( !isStartOfBlock && !isEndOfBlock ) + else if ( !isStartOfBlock && !isEndOfBlock ) { // If the next block is an