Index: /CKEditor/trunk/CHANGES.html
===================================================================
--- /CKEditor/trunk/CHANGES.html	(revision 7203)
+++ /CKEditor/trunk/CHANGES.html	(revision 7204)
@@ -58,4 +58,5 @@
 		<li><a href="http://dev.ckeditor.com/ticket/6908">#6908</a> : Text color should always be applied to the linked text.</li>
 		<li><a href="http://dev.ckeditor.com/ticket/7619">#7619</a> : [IE] IFrame shim now consolidate editor dialog to avoid having it masked by embeddeds.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/7900">#7900</a> : [FF] Copy/Paste table cells no longer breaks Table dialog.</li>
 		<li>Updated the following language files:<ul>
 			<li><a href="http://dev.ckeditor.com/ticket/8128">#8128</a> : Italian;</li>
Index: /CKEditor/trunk/_source/plugins/showborders/plugin.js
===================================================================
--- /CKEditor/trunk/_source/plugins/showborders/plugin.js	(revision 7203)
+++ /CKEditor/trunk/_source/plugins/showborders/plugin.js	(revision 7204)
@@ -116,5 +116,5 @@
 									border = parseInt( attributes.border, 10 );
 
-								if ( !border || border <= 0 )
+								if ( ( !border || border <= 0 ) && ( !cssClass || cssClass.indexOf( showBorderClassName ) == -1 ) )
 									attributes[ 'class' ] = ( cssClass || '' ) + ' ' + showBorderClassName;
 							}
Index: /CKEditor/trunk/_source/plugins/table/dialogs/table.js
===================================================================
--- /CKEditor/trunk/_source/plugins/table/dialogs/table.js	(revision 7203)
+++ /CKEditor/trunk/_source/plugins/table/dialogs/table.js	(revision 7204)
@@ -15,4 +15,22 @@
 		data.info[id] = this.getValue();
 	};
+
+	function tableColumns( table )
+	{
+		var cols = 0, maxCols = 0;
+		for ( var i = 0, row, rows = table.$.rows.length; i < rows; i++ )
+		{
+			row = table.$.rows[ i ];
+			for ( var j = 0, cell, cells = row.cells.length; j < cells; j++ )
+			{
+				cell = row.cells[ j ];
+				cols += cell.colSpan;
+			}
+
+			cols > maxCols && ( maxCols = cols );
+		}
+
+		return maxCols;
+	}
 
 	function tableDialog( editor, command )
@@ -305,5 +323,5 @@
 											setup : function( selectedTable )
 											{
-												this.setValue( selectedTable.$.rows[0].cells.length);
+												this.setValue( tableColumns( selectedTable ) );
 											},
 											commit : commitValue
@@ -335,5 +353,6 @@
 												{
 													// If just one cell isn't a TH then it isn't a header column
-													if ( selectedTable.$.rows[row].cells[0].nodeName.toLowerCase() != 'th' )
+													var headCell = selectedTable.$.rows[row].cells[0];
+													if ( headCell && headCell.nodeName.toLowerCase() != 'th' )
 													{
 														dialog.hasColumnHeaders = false;
