Index: /CKEditor/branches/versions/3.4.x/CHANGES.html
===================================================================
--- /CKEditor/branches/versions/3.4.x/CHANGES.html	(revision 6079)
+++ /CKEditor/branches/versions/3.4.x/CHANGES.html	(revision 6080)
@@ -45,4 +45,5 @@
 		<li><a href="http://dev.ckeditor.com/ticket/6575">#6575</a> : Tabs disappearing in Link dialog after specific action sequence.</li>
 		<li><a href="http://dev.ckeditor.com/ticket/6510">#6510</a> : Margin mirroring doesn't respect style configuration.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6479">#6479</a> : BIDI: Language direction is not being preserved when pressing Enter after a paragraph format has been applied.</li>
 	</ul>
 	<h3>
Index: /CKEditor/branches/versions/3.4.x/_source/plugins/enterkey/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.4.x/_source/plugins/enterkey/plugin.js	(revision 6079)
+++ /CKEditor/branches/versions/3.4.x/_source/plugins/enterkey/plugin.js	(revision 6080)
@@ -99,5 +99,6 @@
 			else
 			{
-				var newBlock;
+				var newBlock,
+					newBlockDir;
 
 				if ( previousBlock )
@@ -116,5 +117,9 @@
 
 				if ( !newBlock )
+				{
 					newBlock = doc.createElement( blockTag );
+					if ( previousBlock && ( newBlockDir = previousBlock.getDirection() ) )
+						newBlock.setAttribute( 'dir', newBlockDir );
+				}
 				// Force the enter block unless we're talking of a list item.
 				else if ( forceMode && !newBlock.is( 'li' ) )
@@ -223,13 +228,26 @@
 			if ( !forceMode && isEndOfBlock && headerTagRegex.test( startBlockTag ) )
 			{
-				// Insert a <br> after the current paragraph.
-				doc.createElement( 'br' ).insertAfter( startBlock );
-
-				// A text node is required by Gecko only to make the cursor blink.
-				if ( CKEDITOR.env.gecko )
-					doc.createText( '' ).insertAfter( startBlock );
-
-				// IE has different behaviors regarding position.
-				range.setStartAt( startBlock.getNext(), CKEDITOR.env.ie ? CKEDITOR.POSITION_BEFORE_START : CKEDITOR.POSITION_AFTER_START );
+				var newBlock,
+					newBlockDir;
+					
+				if ( newBlockDir = startBlock.getDirection() )
+				{
+					newBlock = doc.createElement( 'div' );
+					newBlock.setAttribute( 'dir', newBlockDir );
+					newBlock.insertAfter( startBlock );
+					range.setStart( newBlock, 0 );
+				}
+				else
+				{
+					// Insert a <br> after the current paragraph.
+					doc.createElement( 'br' ).insertAfter( startBlock );
+
+					// A text node is required by Gecko only to make the cursor blink.
+					if ( CKEDITOR.env.gecko )
+						doc.createText( '' ).insertAfter( startBlock );
+
+					// IE has different behaviors regarding position.
+					range.setStartAt( startBlock.getNext(), CKEDITOR.env.ie ? CKEDITOR.POSITION_BEFORE_START : CKEDITOR.POSITION_AFTER_START );
+				}
 			}
 			else
