Index: /CKEditor/trunk/CHANGES.html
===================================================================
--- /CKEditor/trunk/CHANGES.html	(revision 5940)
+++ /CKEditor/trunk/CHANGES.html	(revision 5941)
@@ -64,4 +64,5 @@
 		<li><a href="http://dev.ckeditor.com/ticket/6225">#6225</a> : [FF] Can not transform sevaral lines to list with enterMode BR.</li>
 		<li><a href="http://dev.ckeditor.com/ticket/6467">#6467</a> : [FF] It is now possible to disable the plugin command on "mode" event.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6461">#6461</a> : Attributes are now being kept when changing block formatting.</li>
 		<li>Updated the following language files:<ul>
 			<li><a href="http://dev.ckeditor.com/ticket/6427">#6427</a> : Ukrainian;</li>
Index: /CKEditor/trunk/_source/plugins/list/plugin.js
===================================================================
--- /CKEditor/trunk/_source/plugins/list/plugin.js	(revision 5940)
+++ /CKEditor/trunk/_source/plugins/list/plugin.js	(revision 5941)
@@ -109,10 +109,17 @@
 					else
 					{
-						// Create completely new blocks here, attributes are dropped.
-						if ( dir || ( paragraphMode != CKEDITOR.ENTER_BR && item.grandparent.getName() != 'td' ) )
+						// Create completely new blocks here.
+						if ( dir || item.element.hasAttributes() ||
+							( paragraphMode != CKEDITOR.ENTER_BR && item.grandparent.getName() != 'td' ) )
 						{
 							currentListItem = doc.createElement( paragraphName );
-							if ( dir )
-								currentListItem.setAttribute( 'dir', dir );
+							item.element.copyAttributes( currentListItem, { type:1, value:1 } );
+							dir && currentListItem.setAttribute( 'dir', dir );
+
+							// There might be a case where there are no attributes in the element after all
+							// (i.e. when "type" or "value" are the only attributes set). In this case, if enterMode = BR,
+							// the current item should be a fragment.
+							if ( !dir && paragraphMode == CKEDITOR.ENTER_BR && !currentListItem.hasAttributes() )
+								currentListItem = new CKEDITOR.dom.documentFragment( doc );
 						}
 						else
