Index: /CKEditor/trunk/_source/core/htmlparser/element.js
===================================================================
--- /CKEditor/trunk/_source/core/htmlparser/element.js	(revision 3653)
+++ /CKEditor/trunk/_source/core/htmlparser/element.js	(revision 3654)
@@ -129,4 +129,9 @@
 
 					writeName = element.name;
+					if ( !writeName )	// Send children.
+					{
+						CKEDITOR.htmlParser.fragment.prototype.writeHtml.apply( element, arguments );
+						return;
+					}
 				}
 
Index: /CKEditor/trunk/_source/plugins/scayt/plugin.js
===================================================================
--- /CKEditor/trunk/_source/plugins/scayt/plugin.js	(revision 3653)
+++ /CKEditor/trunk/_source/plugins/scayt/plugin.js	(revision 3654)
@@ -79,10 +79,4 @@
 
 		// Listen to data manipulation to reflect scayt markup.
-		editor.on( 'beforeGetData', function()
-			{
-				if ( plugin.isScaytEnabled( editor ) )
-					plugin.getScayt( editor ).refresh();
-			});
-
 		editor.on( 'afterSetData', function()
 			{
@@ -98,4 +92,25 @@
 				ev.data.scayt = scayt;
 			});
+
+		var dataProcessor = editor.dataProcessor,
+			htmlFilter = dataProcessor && dataProcessor.htmlFilter;
+		if ( htmlFilter )
+		{
+			htmlFilter.addRules(
+				{
+					elements :
+					{
+						span : function( element )
+						{
+							if ( element.attributes.scayt_word && element.attributes.scaytid )
+							{
+								delete element.name;	// Write children, but don't write this node. 
+								return element;
+							}
+						}
+					}
+				}
+			);
+		}
 
 		if ( editor.document )
