Index: /CKEditor/branches/versions/3.5.x/CHANGES.html
===================================================================
--- /CKEditor/branches/versions/3.5.x/CHANGES.html	(revision 6110)
+++ /CKEditor/branches/versions/3.5.x/CHANGES.html	(revision 6111)
@@ -44,4 +44,5 @@
 		<li><a href="http://dev.ckeditor.com/ticket/6010">#6010</a> : The "automatic" option of the font/background color panel now represents the real color.</li>
 		<li><a href="http://dev.ckeditor.com/ticket/5654">#5654</a> : Added the new placeholder plugin.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6334">#6334</a> : CKEditor now uses <a href="http://www.w3.org/TR/2010/WD-html5-20101019/elements.html#embedding-custom-non-visible-data-with-the-data-attributes">HTML5's data-* attributes</a> for its internal attributes.</li>
 	</ul>
 	<p>
Index: /CKEditor/branches/versions/3.5.x/_source/core/dom/domobject.js
===================================================================
--- /CKEditor/branches/versions/3.5.x/_source/core/dom/domobject.js	(revision 6110)
+++ /CKEditor/branches/versions/3.5.x/_source/core/dom/domobject.js	(revision 6111)
@@ -204,5 +204,5 @@
 	domObjectProto.getCustomData = function( key )
 	{
-		var expandoNumber = this.$._cke_expando,
+		var expandoNumber = this.$[ 'data-cke-expando' ],
 			dataSlot = expandoNumber && customData[ expandoNumber ];
 
@@ -215,5 +215,5 @@
 	domObjectProto.removeCustomData = function( key )
 	{
-		var expandoNumber = this.$._cke_expando,
+		var expandoNumber = this.$[ 'data-cke-expando' ],
 			dataSlot = expandoNumber && customData[ expandoNumber ],
 			retval = dataSlot && dataSlot[ key ];
@@ -237,5 +237,5 @@
 		this.removeAllListeners();
 
-		var expandoNumber = this.$._cke_expando;
+		var expandoNumber = this.$[ 'data-cke-expando' ];
 		expandoNumber && delete customData[ expandoNumber ];
 	};
@@ -250,5 +250,5 @@
 	domObjectProto.getUniqueId = function()
 	{
-		return this.$._cke_expando || ( this.$._cke_expando = CKEDITOR.tools.getNextNumber() );
+		return this.$[ 'data-cke-expando' ] || ( this.$[ 'data-cke-expando' ] = CKEDITOR.tools.getNextNumber() );
 	};
 
Index: /CKEditor/branches/versions/3.5.x/_source/core/dom/element.js
===================================================================
--- /CKEditor/branches/versions/3.5.x/_source/core/dom/element.js	(revision 6110)
+++ /CKEditor/branches/versions/3.5.x/_source/core/dom/element.js	(revision 6111)
@@ -729,5 +729,5 @@
 				var attribute = thisAttribs[ i ];
 
-				if ( ( !CKEDITOR.env.ie || ( attribute.specified && attribute.nodeName != '_cke_expando' ) ) && attribute.nodeValue != otherElement.getAttribute( attribute.nodeName ) )
+				if ( ( !CKEDITOR.env.ie || ( attribute.specified && attribute.nodeName != 'data-cke-expando' ) ) && attribute.nodeValue != otherElement.getAttribute( attribute.nodeName ) )
 					return false;
 			}
@@ -740,5 +740,5 @@
 				{
 					attribute = otherAttribs[ i ];
-					if ( attribute.specified && attribute.nodeName != '_cke_expando'
+					if ( attribute.specified && attribute.nodeName != 'data-cke-expando'
 							&& attribute.nodeValue != this.getAttribute( attribute.nodeName ) )
 						return false;
@@ -790,5 +790,5 @@
 				var child = children.getItem( i );
 
-				if ( child.type == CKEDITOR.NODE_ELEMENT && child.getAttribute( '_cke_bookmark' ) )
+				if ( child.type == CKEDITOR.NODE_ELEMENT && child.data( 'cke-bookmark' ) )
 					continue;
 
@@ -835,5 +835,5 @@
 
 							// Attributes to be ignored.
-							case '_cke_expando' :
+							case 'data-cke-expando' :
 								continue;
 
@@ -855,5 +855,5 @@
 
 					// The _moz_dirty attribute might get into the element after pasting (#5455)
-					var execludeAttrs = { _cke_expando : 1, _moz_dirty : 1 };
+					var execludeAttrs = { 'data-cke-expando' : 1, _moz_dirty : 1 };
 
 					return attrsNum > 0 &&
@@ -918,5 +918,5 @@
 					var pendingNodes = [];
 
-					while ( sibling.getAttribute( '_cke_bookmark' )
+					while ( sibling.data( 'cke-bookmark' )
 						|| sibling.isEmptyInlineRemoveable() )
 					{
@@ -1484,5 +1484,5 @@
 			// Replace the node.
 			this.getParent() && this.$.parentNode.replaceChild( newNode.$, this.$ );
-			newNode.$._cke_expando = this.$._cke_expando;
+			newNode.$[ 'data-cke-expando' ] = this.$[ 'data-cke-expando' ];
 			this.$ = newNode.$;
 		},
@@ -1561,4 +1561,21 @@
 		{
 			return useComputed ? this.getComputedStyle( 'direction' ) : this.getStyle( 'direction' ) || this.getAttribute( 'dir' );
+		},
+
+		/**
+		 * Gets, sets and removes custom data to be stored as HTML5 data-* attributes.
+		 * @name CKEDITOR.dom.element.data
+		 * @param {String} name The name of the attribute, execluding the 'data-' part.
+		 * @param {String} [value] The value to set. If set to false, the attribute will be removed.
+		 */
+		data : function ( name, value )
+		{
+			name = 'data-' + name;
+			if ( value === undefined )
+				return this.getAttribute( name );
+			else if ( value === false )
+				this.removeAttribute( name );
+			else
+				this.setAttribute( name, value );
 		}
 	});
Index: /CKEditor/branches/versions/3.5.x/_source/core/dom/node.js
===================================================================
--- /CKEditor/branches/versions/3.5.x/_source/core/dom/node.js	(revision 6110)
+++ /CKEditor/branches/versions/3.5.x/_source/core/dom/node.js	(revision 6111)
@@ -115,5 +115,5 @@
 				if ( !cloneId )
 					node.removeAttribute( 'id', false );
-				node.removeAttribute( '_cke_expando', false );
+				node.removeAttribute( 'data-cke-expando', false );
 
 				if ( includeChildren )
Index: /CKEditor/branches/versions/3.5.x/_source/core/dom/range.js
===================================================================
--- /CKEditor/branches/versions/3.5.x/_source/core/dom/range.js	(revision 6110)
+++ /CKEditor/branches/versions/3.5.x/_source/core/dom/range.js	(revision 6111)
@@ -309,5 +309,5 @@
 			    && node.getName() in CKEDITOR.dtd.$removeEmpty
 			    || !CKEDITOR.tools.trim( node.getText() )
-			    || node.getParent().hasAttribute( '_cke_bookmark' );
+			    || node.getParent().data( 'cke-bookmark' );
 	}
 
@@ -404,5 +404,5 @@
 
 			startNode = this.document.createElement( 'span' );
-			startNode.setAttribute( '_cke_bookmark', 1 );
+			startNode.data( 'cke-bookmark', 1 );
 			startNode.setStyle( 'display', 'none' );
 
@@ -714,8 +714,8 @@
 
 			if ( startNode.is && startNode.is( 'span' )
-				&& startNode.hasAttribute( '_cke_bookmark' ) )
+				&& startNode.data( 'cke-bookmark' ) )
 				this.setStartAt( startNode, CKEDITOR.POSITION_BEFORE_START );
 			if ( endNode && endNode.is && endNode.is( 'span' )
-				&& endNode.hasAttribute( '_cke_bookmark' ) )
+				&& endNode.data( 'cke-bookmark' ) )
 				this.setEndAt( endNode,  CKEDITOR.POSITION_AFTER_END );
 		},
@@ -923,5 +923,5 @@
 								// We need to check for the bookmark attribute because IE insists on
 								// rendering the display:none nodes we use for bookmarks. (#3363)
-								if ( sibling.$.offsetWidth > 0 && !sibling.getAttribute( '_cke_bookmark' ) )
+								if ( sibling.$.offsetWidth > 0 && !sibling.data( 'cke-bookmark' ) )
 								{
 									// We'll accept it only if we need
@@ -1082,5 +1082,5 @@
 								// We need to check for the bookmark attribute because IE insists on
 								// rendering the display:none nodes we use for bookmarks. (#3363)
-								if ( sibling.$.offsetWidth > 0 && !sibling.getAttribute( '_cke_bookmark' ) )
+								if ( sibling.$.offsetWidth > 0 && !sibling.data( 'cke-bookmark' ) )
 								{
 									// We'll accept it only if we need
Index: /CKEditor/branches/versions/3.5.x/_source/core/dom/walker.js
===================================================================
--- /CKEditor/branches/versions/3.5.x/_source/core/dom/walker.js	(revision 6110)
+++ /CKEditor/branches/versions/3.5.x/_source/core/dom/walker.js	(revision 6111)
@@ -375,5 +375,5 @@
 			return ( node && node.getName
 					&& node.getName() == 'span'
-					&& node.hasAttribute( '_cke_bookmark' ) );
+					&& node.data( 'cke-bookmark' ) );
 		}
 
Index: /CKEditor/branches/versions/3.5.x/_source/core/htmlparser/element.js
===================================================================
--- /CKEditor/branches/versions/3.5.x/_source/core/htmlparser/element.js	(revision 6110)
+++ /CKEditor/branches/versions/3.5.x/_source/core/htmlparser/element.js	(revision 6111)
@@ -35,5 +35,5 @@
 	this.children = [];
 
-	var tagName = attributes._cke_real_element_type || name;
+	var tagName = attributes[ 'data-cke-real-element-type' ] || name;
 
 	var dtd			= CKEDITOR.dtd,
Index: /CKEditor/branches/versions/3.5.x/_source/core/htmlparser/fragment.js
===================================================================
--- /CKEditor/branches/versions/3.5.x/_source/core/htmlparser/fragment.js	(revision 6110)
+++ /CKEditor/branches/versions/3.5.x/_source/core/htmlparser/fragment.js	(revision 6111)
@@ -126,5 +126,5 @@
 				if ( element.attributes
 					 && ( realElementName =
-						  element.attributes[ '_cke_real_element_type' ] ) )
+						  element.attributes[ 'data-cke-real-element-type' ] ) )
 					elementName = realElementName;
 				else
Index: /CKEditor/branches/versions/3.5.x/_source/plugins/div/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.5.x/_source/plugins/div/plugin.js	(revision 6110)
+++ /CKEditor/branches/versions/3.5.x/_source/plugins/div/plugin.js	(revision 6111)
@@ -38,8 +38,8 @@
 								div = blockLimit.is( 'div' ) && blockLimit;
 
-							if ( div && !div.getAttribute( '_cke_div_added' ) )
+							if ( div && !div.data( 'cke-div-added' ) )
 							{
 								toRemove.push( div );
-								div.setAttribute( '_cke_div_added' );
+								div.data( 'cke-div-added' );
 							}
 						}
Index: /CKEditor/branches/versions/3.5.x/_source/plugins/elementspath/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.5.x/_source/plugins/elementspath/plugin.js	(revision 6110)
+++ /CKEditor/branches/versions/3.5.x/_source/plugins/elementspath/plugin.js	(revision 6111)
@@ -83,6 +83,6 @@
 							var index = elementsList.push( element ) - 1;
 							var name;
-							if ( element.getAttribute( '_cke_real_element_type' ) )
-								name = element.getAttribute( '_cke_real_element_type' );
+							if ( element.data( 'cke-real-element-type' ) )
+								name = element.data( 'cke-real-element-type' );
 							else
 								name = element.getName();
Index: /CKEditor/branches/versions/3.5.x/_source/plugins/fakeobjects/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.5.x/_source/plugins/fakeobjects/plugin.js	(revision 6110)
+++ /CKEditor/branches/versions/3.5.x/_source/plugins/fakeobjects/plugin.js	(revision 6111)
@@ -13,5 +13,5 @@
 			{
 				var attributes = element.attributes,
-					realHtml = attributes && attributes._cke_realelement,
+					realHtml = attributes && attributes[ 'data-cke-realelement' ],
 					realFragment = realHtml && new CKEDITOR.htmlParser.fragment.fromHtml( decodeURIComponent( realHtml ) ),
 					realElement = realFragment && realFragment.children[ 0 ];
@@ -19,5 +19,5 @@
 				// If we have width/height in the element, we must move it into
 				// the real element.
-				if ( realElement && element.attributes._cke_resizable )
+				if ( realElement && element.attributes[ 'data-cke-resizable' ] )
 				{
 					var style = element.attributes.style;
@@ -69,6 +69,6 @@
 		'class' : className,
 		src : CKEDITOR.getUrl( 'images/spacer.gif' ),
-		_cke_realelement : encodeURIComponent( realElement.getOuterHtml() ),
-		_cke_real_node_type : realElement.type,
+		'data-cke-realelement' : encodeURIComponent( realElement.getOuterHtml() ),
+		'data-cke-real-node-type' : realElement.type,
 		alt : lang[ realElementType ] || lang.unknown,
 		align : realElement.getAttribute( 'align' ) || ''
@@ -76,8 +76,8 @@
 
 	if ( realElementType )
-		attributes._cke_real_element_type = realElementType;
+		attributes[ 'data-cke-real-element-type' ] = realElementType;
 
 	if ( isResizable )
-		attributes._cke_resizable = isResizable;
+		attributes[ 'data-cke-resizable' ] = isResizable;
 
 	return this.document.createElement( 'img', { attributes : attributes } );
@@ -97,6 +97,6 @@
 		'class' : className,
 		src : CKEDITOR.getUrl( 'images/spacer.gif' ),
-		_cke_realelement : encodeURIComponent( html ),
-		_cke_real_node_type : realElement.type,
+		'data-cke-realelement' : encodeURIComponent( html ),
+		'data-cke-real-node-type' : realElement.type,
 		alt : lang[ realElementType ] || lang.unknown,
 		align : realElement.attributes.align || ''
@@ -104,8 +104,8 @@
 
 	if ( realElementType )
-		attributes._cke_real_element_type = realElementType;
+		attributes[ 'data-cke-real-element-type' ] = realElementType;
 
 	if ( isResizable )
-		attributes._cke_resizable = isResizable;
+		attributes[ 'data-cke-resizable' ] = isResizable;
 
 	return new CKEDITOR.htmlParser.element( 'img', attributes );
@@ -114,9 +114,9 @@
 CKEDITOR.editor.prototype.restoreRealElement = function( fakeElement )
 {
-	if ( fakeElement.getAttribute( '_cke_real_node_type' ) != CKEDITOR.NODE_ELEMENT )
+	if ( fakeElement.data( 'cke-real-node-type' ) != CKEDITOR.NODE_ELEMENT )
 		return null;
 
 	return CKEDITOR.dom.element.createFromHtml(
-		decodeURIComponent( fakeElement.getAttribute( '_cke_realelement' ) ),
+		decodeURIComponent( fakeElement.data( 'cke-realelement' ) ),
 		this.document );
 };
Index: /CKEditor/branches/versions/3.5.x/_source/plugins/flash/dialogs/flash.js
===================================================================
--- /CKEditor/branches/versions/3.5.x/_source/plugins/flash/dialogs/flash.js	(revision 6110)
+++ /CKEditor/branches/versions/3.5.x/_source/plugins/flash/dialogs/flash.js	(revision 6111)
@@ -191,5 +191,5 @@
 				// Try to detect any embed or object tag that has Flash parameters.
 				var fakeImage = this.getSelectedElement();
-				if ( fakeImage && fakeImage.getAttribute( '_cke_real_element_type' ) && fakeImage.getAttribute( '_cke_real_element_type' ) == 'flash' )
+				if ( fakeImage && fakeImage.data( 'cke-real-element-type' ) && fakeImage.data( 'cke-real-element-type' ) == 'flash' )
 				{
 					this.fakeImage = fakeImage;
Index: /CKEditor/branches/versions/3.5.x/_source/plugins/flash/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.5.x/_source/plugins/flash/plugin.js	(revision 6110)
+++ /CKEditor/branches/versions/3.5.x/_source/plugins/flash/plugin.js	(revision 6111)
@@ -76,5 +76,5 @@
 					var element = evt.data.element;
 
-					if ( element.is( 'img' ) && element.getAttribute( '_cke_real_element_type' ) == 'flash' )
+					if ( element.is( 'img' ) && element.data( 'cke-real-element-type' ) == 'flash' )
 						evt.data.dialog = 'flash';
 				});
@@ -86,5 +86,5 @@
 					{
 						if ( element && element.is( 'img' ) && !element.isReadOnly()
-								&& element.getAttribute( '_cke_real_element_type' ) == 'flash' )
+								&& element.data( 'cke-real-element-type' ) == 'flash' )
 							return { flash : CKEDITOR.TRISTATE_OFF };
 					});
Index: /CKEditor/branches/versions/3.5.x/_source/plugins/forms/dialogs/button.js
===================================================================
--- /CKEditor/branches/versions/3.5.x/_source/plugins/forms/dialogs/button.js	(revision 6110)
+++ /CKEditor/branches/versions/3.5.x/_source/plugins/forms/dialogs/button.js	(revision 6111)
@@ -53,5 +53,5 @@
 						{
 							this.setValue(
-									element.getAttribute( '_cke_saved_name' ) ||
+									element.data( 'cke-saved-name' ) ||
 									element.getAttribute( 'name' ) ||
 									'' );
@@ -62,8 +62,8 @@
 
 							if ( this.getValue() )
-								element.setAttribute( '_cke_saved_name', this.getValue() );
+								element.data( 'cke-saved-name', this.getValue() );
 							else
 							{
-								element.removeAttribute( '_cke_saved_name' );
+								element.data( 'cke-saved-name', false );
 								element.removeAttribute( 'name' );
 							}
Index: /CKEditor/branches/versions/3.5.x/_source/plugins/forms/dialogs/checkbox.js
===================================================================
--- /CKEditor/branches/versions/3.5.x/_source/plugins/forms/dialogs/checkbox.js	(revision 6110)
+++ /CKEditor/branches/versions/3.5.x/_source/plugins/forms/dialogs/checkbox.js	(revision 6111)
@@ -52,5 +52,5 @@
 						{
 							this.setValue(
-									element.getAttribute( '_cke_saved_name' ) ||
+									element.data( 'cke-saved-name' ) ||
 									element.getAttribute( 'name' ) ||
 									'' );
@@ -62,8 +62,8 @@
 							// IE failed to update 'name' property on input elements, protect it now.
 							if ( this.getValue() )
-								element.setAttribute( '_cke_saved_name', this.getValue() );
+								element.data( 'cke-saved-name', this.getValue() );
 							else
 							{
-								element.removeAttribute( '_cke_saved_name' );
+								element.data( 'cke-saved-name', false );
 								element.removeAttribute( 'name' );
 							}
Index: /CKEditor/branches/versions/3.5.x/_source/plugins/forms/dialogs/form.js
===================================================================
--- /CKEditor/branches/versions/3.5.x/_source/plugins/forms/dialogs/form.js	(revision 6110)
+++ /CKEditor/branches/versions/3.5.x/_source/plugins/forms/dialogs/form.js	(revision 6111)
@@ -85,5 +85,5 @@
 						setup : function( element )
 						{
-							this.setValue( element.getAttribute( '_cke_saved_name' ) ||
+							this.setValue( element.data( 'cke-saved-name' ) ||
 									element.getAttribute( 'name' ) ||
 									'' );
@@ -92,8 +92,8 @@
 						{
 							if ( this.getValue() )
-								element.setAttribute( '_cke_saved_name', this.getValue() );
+								element.data( 'cke-saved-name', this.getValue() );
 							else
 							{
-								element.removeAttribute( '_cke_saved_name' );
+								element.data( 'cke-saved-name', false );
 								element.removeAttribute( 'name' );
 							}
Index: /CKEditor/branches/versions/3.5.x/_source/plugins/forms/dialogs/hiddenfield.js
===================================================================
--- /CKEditor/branches/versions/3.5.x/_source/plugins/forms/dialogs/hiddenfield.js	(revision 6110)
+++ /CKEditor/branches/versions/3.5.x/_source/plugins/forms/dialogs/hiddenfield.js	(revision 6111)
@@ -18,5 +18,5 @@
 				element = selection.getSelectedElement();
 
-			if ( element && element.getAttribute( '_cke_real_element_type' ) && element.getAttribute( '_cke_real_element_type' ) == 'hiddenfield' )
+			if ( element && element.data( 'cke-real-element-type' ) && element.data( 'cke-real-element-type' ) == 'hiddenfield' )
 			{
 				this.hiddenField = element;
@@ -60,5 +60,5 @@
 						{
 							this.setValue(
-									element.getAttribute( '_cke_saved_name' ) ||
+									element.data( 'cke-saved-name' ) ||
 									element.getAttribute( 'name' ) ||
 									'' );
Index: /CKEditor/branches/versions/3.5.x/_source/plugins/forms/dialogs/radio.js
===================================================================
--- /CKEditor/branches/versions/3.5.x/_source/plugins/forms/dialogs/radio.js	(revision 6110)
+++ /CKEditor/branches/versions/3.5.x/_source/plugins/forms/dialogs/radio.js	(revision 6111)
@@ -52,5 +52,5 @@
 						{
 							this.setValue(
-									element.getAttribute( '_cke_saved_name' ) ||
+									element.data( 'cke-saved-name' ) ||
 									element.getAttribute( 'name' ) ||
 									'' );
@@ -61,8 +61,8 @@
 
 							if ( this.getValue() )
-								element.setAttribute( '_cke_saved_name', this.getValue() );
+								element.data( 'cke-saved-name', this.getValue() );
 							else
 							{
-								element.removeAttribute( '_cke_saved_name' );
+								element.data( 'cke-saved-name', false );
 								element.removeAttribute( 'name' );
 							}
Index: /CKEditor/branches/versions/3.5.x/_source/plugins/forms/dialogs/select.js
===================================================================
--- /CKEditor/branches/versions/3.5.x/_source/plugins/forms/dialogs/select.js	(revision 6110)
+++ /CKEditor/branches/versions/3.5.x/_source/plugins/forms/dialogs/select.js	(revision 6111)
@@ -194,9 +194,9 @@
 						{
 							if ( name == 'clear' )
-								this.setValue( this['default'] || '' );
+								this.setValue( this[ 'default' ] || '' );
 							else if ( name == 'select' )
 							{
 								this.setValue(
-										element.getAttribute( '_cke_saved_name' ) ||
+										element.data( 'cke-saved-name' ) ||
 										element.getAttribute( 'name' ) ||
 										'' );
@@ -206,8 +206,8 @@
 						{
 							if ( this.getValue() )
-								element.setAttribute( '_cke_saved_name', this.getValue() );
+								element.data( 'cke-saved-name', this.getValue() );
 							else
 							{
-								element.removeAttribute( '_cke_saved_name' ) ;
+								element.data( 'cke-saved-name', false );
 								element.removeAttribute( 'name' );
 							}
Index: /CKEditor/branches/versions/3.5.x/_source/plugins/forms/dialogs/textarea.js
===================================================================
--- /CKEditor/branches/versions/3.5.x/_source/plugins/forms/dialogs/textarea.js	(revision 6110)
+++ /CKEditor/branches/versions/3.5.x/_source/plugins/forms/dialogs/textarea.js	(revision 6111)
@@ -51,5 +51,5 @@
 						{
 							this.setValue(
-									element.getAttribute( '_cke_saved_name' ) ||
+									element.data( 'cke-saved-name' ) ||
 									element.getAttribute( 'name' ) ||
 									'' );
@@ -58,8 +58,8 @@
 						{
 							if ( this.getValue() )
-								element.setAttribute( '_cke_saved_name', this.getValue() );
+								element.data( 'cke-saved-name', this.getValue() );
 							else
 							{
-								element.removeAttribute( '_cke_saved_name' );
+								element.data( 'cke-saved-name', false );
 								element.removeAttribute( 'name' );
 							}
Index: /CKEditor/branches/versions/3.5.x/_source/plugins/forms/dialogs/textfield.js
===================================================================
--- /CKEditor/branches/versions/3.5.x/_source/plugins/forms/dialogs/textfield.js	(revision 6110)
+++ /CKEditor/branches/versions/3.5.x/_source/plugins/forms/dialogs/textfield.js	(revision 6111)
@@ -99,5 +99,5 @@
 								{
 									this.setValue(
-											element.getAttribute( '_cke_saved_name' ) ||
+											element.data( 'cke-saved-name' ) ||
 											element.getAttribute( 'name' ) ||
 											'' );
@@ -108,8 +108,8 @@
 
 									if ( this.getValue() )
-										element.setAttribute( '_cke_saved_name', this.getValue() );
+										element.data( 'cke-saved-name', this.getValue() );
 									else
 									{
-										element.removeAttribute( '_cke_saved_name' );
+										element.data( 'cke-saved-name', false );
 										element.removeAttribute( 'name' );
 									}
Index: /CKEditor/branches/versions/3.5.x/_source/plugins/forms/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.5.x/_source/plugins/forms/plugin.js	(revision 6110)
+++ /CKEditor/branches/versions/3.5.x/_source/plugins/forms/plugin.js	(revision 6111)
@@ -168,5 +168,5 @@
 						}
 
-						if ( name == 'img' && element.getAttribute( '_cke_real_element_type' ) == 'hiddenfield' )
+						if ( name == 'img' && element.data( 'cke-real-element-type' ) == 'hiddenfield' )
 							return { hiddenfield : CKEDITOR.TRISTATE_OFF };
 					}
@@ -184,5 +184,5 @@
 				else if ( element.is( 'textarea' ) )
 					evt.data.dialog = 'textarea';
-				else if ( element.is( 'img' ) && element.getAttribute( '_cke_real_element_type' ) == 'hiddenfield' )
+				else if ( element.is( 'img' ) && element.data( 'cke-real-element-type' ) == 'hiddenfield' )
 					evt.data.dialog = 'hiddenfield';
 				else if ( element.is( 'input' ) )
Index: /CKEditor/branches/versions/3.5.x/_source/plugins/htmldataprocessor/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.5.x/_source/plugins/htmldataprocessor/plugin.js	(revision 6110)
+++ /CKEditor/branches/versions/3.5.x/_source/plugins/htmldataprocessor/plugin.js	(revision 6111)
@@ -99,5 +99,5 @@
 			// Event attributes (onXYZ) must not be directly set. They can become
 			// active in the editing area (IE|WebKit).
-			[ ( /^on/ ), '_cke_pa_on' ]
+			[ ( /^on/ ), 'data-cke-pa-on' ]
 		]
 	};
@@ -122,8 +122,8 @@
 			[
 				// Attributes saved for changes and protected attributes.
-				[ ( /^_cke_(saved|pa)_/ ), '' ],
-
-				// All "_cke" attributes are to be ignored.
-				[ ( /^_cke.*/ ), '' ],
+				[ ( /^data-cke-(saved|pa)-/ ), '' ],
+
+				// All "data-cke" attributes are to be ignored.
+				[ ( /^data-cke.*/ ), '' ],
 
 				[ 'hidefocus', '' ]
@@ -139,5 +139,5 @@
 					{
 						// Elements marked as temporary are to be ignored.
-						if ( attribs.cke_temp )
+						if ( attribs[ 'data-cke-temp' ] )
 							return false;
 
@@ -147,5 +147,5 @@
 						for ( var i = 0 ; i < attributeNames.length ; i++ )
 						{
-							savedAttributeName = '_cke_saved_' + attributeNames[ i ];
+							savedAttributeName = 'data-cke-saved-' + attributeNames[ i ];
 							savedAttributeName in attribs && ( delete attribs[ attributeNames[ i ] ] );
 						}
@@ -182,5 +182,5 @@
 					if ( !( element.children.length ||
 							element.attributes.name ||
-							element.attributes._cke_saved_name ) )
+							element.attributes[ 'data-cke-saved-name' ] ) )
 					{
 						return false;
@@ -212,5 +212,5 @@
 				{
 					var titleText = element.children[ 0 ];
-					titleText && ( titleText.value = element.attributes[ '_cke_title' ] || '' );
+					titleText && ( titleText.value = element.attributes[ 'data-cke-title' ] || '' );
 				}
 			},
@@ -274,5 +274,5 @@
 
 	var protectAttributeRegex = /<((?:a|area|img|input)[\s\S]*?\s)((href|src|name)\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|(?:[^ "'>]+)))([^>]*)>/gi,
-		findSavedSrcRegex = /\s_cke_saved_src\s*=/;
+		findSavedSrcRegex = /\sdata-cke-saved-src\s*=/;
 
 	var protectElementsRegex = /(?:<style(?=[ >])[^>]*>[\s\S]*<\/style>)|(?:<(:?link|meta|base)[^>]*>)/gi,
@@ -292,5 +292,5 @@
 					return tag;
 				else
-					return '<' + beginning + fullAttr + ' _cke_saved_' + fullAttr + end + '>';
+					return '<' + beginning + fullAttr + ' data-cke-saved-' + fullAttr + end + '>';
 			});
 	}
Index: /CKEditor/branches/versions/3.5.x/_source/plugins/iframe/dialogs/iframe.js
===================================================================
--- /CKEditor/branches/versions/3.5.x/_source/plugins/iframe/dialogs/iframe.js	(revision 6110)
+++ /CKEditor/branches/versions/3.5.x/_source/plugins/iframe/dialogs/iframe.js	(revision 6111)
@@ -55,5 +55,5 @@
 
 				var fakeImage = this.getSelectedElement();
-				if ( fakeImage && fakeImage.getAttribute( '_cke_real_element_type' ) && fakeImage.getAttribute( '_cke_real_element_type' ) == 'iframe' )
+				if ( fakeImage && fakeImage.data( 'cke-real-element-type' ) && fakeImage.data( 'cke-real-element-type' ) == 'iframe' )
 				{
 					this.fakeImage = fakeImage;
Index: /CKEditor/branches/versions/3.5.x/_source/plugins/iframe/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.5.x/_source/plugins/iframe/plugin.js	(revision 6110)
+++ /CKEditor/branches/versions/3.5.x/_source/plugins/iframe/plugin.js	(revision 6111)
@@ -57,5 +57,5 @@
 				{
 					var element = evt.data.element;
-					if ( element.is( 'img' ) && element.getAttribute( '_cke_real_element_type' ) == 'iframe' )
+					if ( element.is( 'img' ) && element.data( 'cke-real-element-type' ) == 'iframe' )
 						evt.data.dialog = 'iframe';
 				});
@@ -79,5 +79,5 @@
 				editor.contextMenu.addListener( function( element, selection )
 					{
-						if ( element && element.is( 'img' ) && element.getAttribute( '_cke_real_element_type' ) == 'iframe' )
+						if ( element && element.is( 'img' ) && element.data( 'cke-real-element-type' ) == 'iframe' )
 							return { iframe : CKEDITOR.TRISTATE_OFF };
 					});
Index: /CKEditor/branches/versions/3.5.x/_source/plugins/image/dialogs/image.js
===================================================================
--- /CKEditor/branches/versions/3.5.x/_source/plugins/image/dialogs/image.js	(revision 6110)
+++ /CKEditor/branches/versions/3.5.x/_source/plugins/image/dialogs/image.js	(revision 6111)
@@ -320,5 +320,5 @@
 				}
 
-				if ( element && element.getName() == 'img' && !element.getAttribute( '_cke_realelement' )
+				if ( element && element.getName() == 'img' && !element.data( 'cke-realelement' )
 					|| element && element.getName() == 'input' && element.getAttribute( 'type' ) == 'image' )
 				{
@@ -534,5 +534,5 @@
 												if ( type == IMAGE )
 												{
-													var url = element.getAttribute( '_cke_saved_src' ) || element.getAttribute( 'src' );
+													var url = element.data( 'cke-saved-src' ) || element.getAttribute( 'src' );
 													var field = this;
 
@@ -548,5 +548,5 @@
 												if ( type == IMAGE && ( this.getValue() || this.isChanged() ) )
 												{
-													element.setAttribute( '_cke_saved_src', decodeURI( this.getValue() ) );
+													element.data( 'cke-saved-src', decodeURI( this.getValue() ) );
 													element.setAttribute( 'src', decodeURI( this.getValue() ) );
 												}
@@ -1095,5 +1095,5 @@
 								if ( type == LINK )
 								{
-									var href = element.getAttribute( '_cke_saved_href' );
+									var href = element.data( 'cke-saved-href' );
 									if ( !href )
 										href = element.getAttribute( 'href' );
@@ -1107,5 +1107,5 @@
 									if ( this.getValue() || this.isChanged() )
 									{
-										element.setAttribute( '_cke_saved_href', decodeURI( this.getValue() ) );
+										element.data( 'cke-saved-href', decodeURI( this.getValue() ) );
 										element.setAttribute( 'href', 'javascript:void(0)/*' +
 											CKEDITOR.tools.getNextNumber() + '*/' );
Index: /CKEditor/branches/versions/3.5.x/_source/plugins/image/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.5.x/_source/plugins/image/plugin.js	(revision 6110)
+++ /CKEditor/branches/versions/3.5.x/_source/plugins/image/plugin.js	(revision 6111)
@@ -31,5 +31,5 @@
 				var element = evt.data.element;
 
-				if ( element.is( 'img' ) && !element.getAttribute( '_cke_realelement' ) )
+				if ( element.is( 'img' ) && !element.data( 'cke-realelement' ) )
 					evt.data.dialog = 'image';
 			});
@@ -54,5 +54,5 @@
 			editor.contextMenu.addListener( function( element, selection )
 				{
-					if ( !element || !element.is( 'img' ) || element.getAttribute( '_cke_realelement' ) || element.isReadOnly() )
+					if ( !element || !element.is( 'img' ) || element.data( 'cke-realelement' ) || element.isReadOnly() )
 						return null;
 
Index: /CKEditor/branches/versions/3.5.x/_source/plugins/link/dialogs/anchor.js
===================================================================
--- /CKEditor/branches/versions/3.5.x/_source/plugins/link/dialogs/anchor.js	(revision 6110)
+++ /CKEditor/branches/versions/3.5.x/_source/plugins/link/dialogs/anchor.js	(revision 6111)
@@ -39,5 +39,5 @@
 
 			// Set name.
-			element.removeAttribute( '_cke_saved_name' );
+			element.data( 'cke-saved-name', false );
 			element.setAttribute( 'name', name );
 
@@ -62,5 +62,5 @@
 			var selection = editor.getSelection();
 			var element = selection.getSelectedElement();
-			if ( element && element.getAttribute( '_cke_real_element_type' ) && element.getAttribute( '_cke_real_element_type' ) == 'anchor' )
+			if ( element && element.data( 'cke-real-element-type' ) && element.data( 'cke-real-element-type' ) == 'anchor' )
 			{
 				this.fakeObj = element;
Index: /CKEditor/branches/versions/3.5.x/_source/plugins/link/dialogs/link.js
===================================================================
--- /CKEditor/branches/versions/3.5.x/_source/plugins/link/dialogs/link.js	(revision 6110)
+++ /CKEditor/branches/versions/3.5.x/_source/plugins/link/dialogs/link.js	(revision 6111)
@@ -95,5 +95,5 @@
 	var parseLink = function( editor, element )
 	{
-		var href = ( element  && ( element.getAttribute( '_cke_saved_href' ) || element.getAttribute( 'href' ) ) ) || '',
+		var href = ( element  && ( element.data( 'cke-saved-href' ) || element.getAttribute( 'href' ) ) ) || '',
 		 	javascriptMatch,
 			emailMatch,
@@ -185,5 +185,5 @@
 			if ( !target )
 			{
-				var onclick = element.getAttribute( '_cke_pa_onclick' ) || element.getAttribute( 'onclick' ),
+				var onclick = element.data( 'cke-pa-onclick' ) || element.getAttribute( 'onclick' ),
 					onclickMatch = onclick && onclick.match( popupRegex );
 				if ( onclickMatch )
@@ -243,5 +243,5 @@
 		{
 			var item = elements.getItem( i );
-			if ( item.getAttribute( '_cke_realelement' ) && item.getAttribute( '_cke_real_element_type' ) == 'anchor' )
+			if ( item.data( 'cke-realelement' ) && item.data( 'cke-real-element-type' ) == 'anchor' )
 				anchors.push( editor.restoreRealElement( item ) );
 		}
@@ -1146,6 +1146,6 @@
 				selection.selectElement( element );
 			else if ( ( element = selection.getSelectedElement() ) && element.is( 'img' )
-					&& element.getAttribute( '_cke_real_element_type' )
-					&& element.getAttribute( '_cke_real_element_type' ) == 'anchor' )
+					&& element.data( 'cke-real-element-type' )
+					&& element.data( 'cke-real-element-type' ) == 'anchor' )
 			{
 				this.fakeObj = element;
@@ -1174,10 +1174,10 @@
 					var protocol = ( data.url && data.url.protocol != undefined ) ? data.url.protocol : 'http://',
 						url = ( data.url && data.url.url ) || '';
-					attributes._cke_saved_href = ( url.indexOf( '/' ) === 0 ) ? url : protocol + url;
+					attributes[ 'data-cke-saved-href' ] = ( url.indexOf( '/' ) === 0 ) ? url : protocol + url;
 					break;
 				case 'anchor':
 					var name = ( data.anchor && data.anchor.name ),
 						id = ( data.anchor && data.anchor.id );
-					attributes._cke_saved_href = '#' + ( name || id || '' );
+					attributes[ 'data-cke-saved-href' ] = '#' + ( name || id || '' );
 					break;
 				case 'email':
@@ -1226,5 +1226,5 @@
 					}
 
-					attributes._cke_saved_href = linkHref.join( '' );
+					attributes[ 'data-cke-saved-href' ] = linkHref.join( '' );
 					break;
 			}
@@ -1254,5 +1254,5 @@
 
 					onclickList.push( featureList.join( ',' ), '\'); return false;' );
-					attributes[ '_cke_pa_onclick' ] = onclickList.join( '' );
+					attributes[ 'data-cke-pa-onclick' ] = onclickList.join( '' );
 
 					// Add the "target" attribute. (#5074)
@@ -1266,5 +1266,5 @@
 						removeAttributes.push( 'target' );
 
-					removeAttributes.push( '_cke_pa_onclick', 'onclick' );
+					removeAttributes.push( 'data-cke-pa-onclick', 'onclick' );
 				}
 			}
@@ -1305,5 +1305,5 @@
 					// Short mailto link text view (#5736).
 					var text = new CKEDITOR.dom.text( data.type == 'email' ?
-							data.email.address : attributes._cke_saved_href, editor.document );
+							data.email.address : attributes[ 'data-cke-saved-href' ], editor.document );
 					ranges[0].insertNode( text );
 					ranges[0].selectNodeContents( text );
@@ -1334,5 +1334,5 @@
 				// We're only editing an existing link, so just overwrite the attributes.
 				var element = this._.selectedElement,
-					href = element.getAttribute( '_cke_saved_href' ),
+					href = element.data( 'cke-saved-href' ),
 					textView = element.getHtml();
 
@@ -1361,5 +1361,5 @@
 					// Short mailto link text view (#5736).
 					element.setHtml( data.type == 'email' ?
-						data.email.address : attributes._cke_saved_href );
+						data.email.address : attributes[ 'data-cke-saved-href' ] );
 				}
 				// Make the element display as an anchor if a name has been set.
Index: /CKEditor/branches/versions/3.5.x/_source/plugins/link/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.5.x/_source/plugins/link/plugin.js	(revision 6110)
+++ /CKEditor/branches/versions/3.5.x/_source/plugins/link/plugin.js	(revision 6111)
@@ -72,5 +72,5 @@
 				if ( element.is( 'a' ) )
 					evt.data.dialog =  ( element.getAttribute( 'name' ) && !element.getAttribute( 'href' ) ) ? 'anchor' : 'link';
-				else if ( element.is( 'img' ) && element.getAttribute( '_cke_real_element_type' ) == 'anchor' )
+				else if ( element.is( 'img' ) && element.data( 'cke-real-element-type' ) == 'anchor' )
 					evt.data.dialog = 'anchor';
 			});
@@ -114,5 +114,5 @@
 						return null;
 
-					var isAnchor = ( element.is( 'img' ) && element.getAttribute( '_cke_real_element_type' ) == 'anchor' );
+					var isAnchor = ( element.is( 'img' ) && element.data( 'cke-real-element-type' ) == 'anchor' );
 
 					if ( !isAnchor )
Index: /CKEditor/branches/versions/3.5.x/_source/plugins/placeholder/dialogs/placeholder.js
===================================================================
--- /CKEditor/branches/versions/3.5.x/_source/plugins/placeholder/dialogs/placeholder.js	(revision 6110)
+++ /CKEditor/branches/versions/3.5.x/_source/plugins/placeholder/dialogs/placeholder.js	(revision 6111)
@@ -53,5 +53,5 @@
 					range.shrink( CKEDITOR.SHRINK_TEXT );
 					var node = range.startContainer;
-					while( node && !( node.type == CKEDITOR.NODE_ELEMENT && node.hasAttributes( '_cke_placeholder' ) ) )
+					while( node && !( node.type == CKEDITOR.NODE_ELEMENT && node.data( 'cke-placeholder' ) ) )
 						node = node.getParent();
 					this._element = node;
Index: /CKEditor/branches/versions/3.5.x/_source/plugins/placeholder/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.5.x/_source/plugins/placeholder/plugin.js	(revision 6110)
+++ /CKEditor/branches/versions/3.5.x/_source/plugins/placeholder/plugin.js	(revision 6111)
@@ -49,5 +49,5 @@
 					editor.contextMenu.addListener( function( element, selection )
 						{
-							if ( !element || !element.hasAttribute( '_cke_placeholder' ) )
+							if ( !element || !element.data( 'cke-placeholder' ) )
 								return null;
 
@@ -60,5 +60,5 @@
 				{
 					var element = evt.data.element;
-					if ( element.hasAttribute( '_cke_placeholder' ) )
+					if ( element.data( 'cke-placeholder' ) )
 						evt.data.dialog = 'editplaceholder';
 				});
@@ -76,5 +76,5 @@
 					editor.document.getBody().on( 'resizestart', function( evt )
 						{
-							if ( editor.getSelection().getSelectedElement().hasAttribute( '_cke_placeholder' ) )
+							if ( editor.getSelection().getSelectedElement().data( 'cke-placeholder' ) )
 								evt.data.preventDefault();
 						});
@@ -112,5 +112,5 @@
 						'span' : function( element )
 						{
-							if ( element.attributes && element.attributes._cke_placeholder )
+							if ( element.attributes && element.attributes[ 'data-cke-placeholder' ] )
 								delete element.name;
 						}
@@ -129,7 +129,7 @@
 		element.setAttributes(
 			{
-				contentEditable	: 'false',
-				_cke_placeholder	: 1,
-				'class'		: 'cke_placeholder'
+				contentEditable		: 'false',
+				'data-cke-placeholder'	: 1,
+				'class'			: 'cke_placeholder'
 			}
 		);
Index: /CKEditor/branches/versions/3.5.x/_source/plugins/removeformat/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.5.x/_source/plugins/removeformat/plugin.js	(revision 6110)
+++ /CKEditor/branches/versions/3.5.x/_source/plugins/removeformat/plugin.js	(revision 6111)
@@ -99,5 +99,5 @@
 						// This node must not be a fake element.
 						if ( !( currentNode.getName() == 'img'
-							&& currentNode.getAttribute( '_cke_realelement' ) )
+							&& currentNode.data( 'cke-realelement' ) )
 							&& filter( editor, currentNode ) )
 						{
Index: /CKEditor/branches/versions/3.5.x/_source/plugins/smiley/dialogs/smiley.js
===================================================================
--- /CKEditor/branches/versions/3.5.x/_source/plugins/smiley/dialogs/smiley.js	(revision 6110)
+++ /CKEditor/branches/versions/3.5.x/_source/plugins/smiley/dialogs/smiley.js	(revision 6111)
@@ -35,5 +35,5 @@
 				{
 					src : src,
-					_cke_saved_src : src,
+					'data-cke-saved-src' : src,
 					title : title,
 					alt : title,
Index: /CKEditor/branches/versions/3.5.x/_source/plugins/styles/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.5.x/_source/plugins/styles/plugin.js	(revision 6110)
+++ /CKEditor/branches/versions/3.5.x/_source/plugins/styles/plugin.js	(revision 6111)
@@ -407,5 +407,5 @@
 				var nodeName = nodeType == CKEDITOR.NODE_ELEMENT ? currentNode.getName() : null;
 
-				if ( nodeName && currentNode.getAttribute( '_cke_bookmark' ) )
+				if ( nodeName && currentNode.data( 'cke-bookmark' ) )
 				{
 					currentNode = currentNode.getNextSourceNode( true );
@@ -884,5 +884,5 @@
 		// Exclude the ones at header OR at tail,
 		// and ignore bookmark content between them.
-		var duoBrRegex = /(\S\s*)\n(?:\s|(<span[^>]+_cke_bookmark.*?\/span>))*\n(?!$)/gi,
+		var duoBrRegex = /(\S\s*)\n(?:\s|(<span[^>]+data-cke-bookmark.*?\/span>))*\n(?!$)/gi,
 			blockName = preBlock.getName(),
 			splitedHtml = replace( preBlock.getOuterHtml(),
@@ -906,5 +906,5 @@
 			tailBookmark = '';
 
-		str = str.replace( /(^<span[^>]+_cke_bookmark.*?\/span>)|(<span[^>]+_cke_bookmark.*?\/span>$)/gi,
+		str = str.replace( /(^<span[^>]+data-cke-bookmark.*?\/span>)|(<span[^>]+data-cke-bookmark.*?\/span>$)/gi,
 			function( str, m1, m2 ){
 					m1 && ( headBookmark = m1 );
Index: /CKEditor/branches/versions/3.5.x/_source/plugins/table/dialogs/table.js
===================================================================
--- /CKEditor/branches/versions/3.5.x/_source/plugins/table/dialogs/table.js	(revision 6110)
+++ /CKEditor/branches/versions/3.5.x/_source/plugins/table/dialogs/table.js	(revision 6111)
@@ -168,5 +168,5 @@
 							var th = theRow.getChild( i );
 							// Skip bookmark nodes. (#6155)
-							if ( th.type == CKEDITOR.NODE_ELEMENT && !th.hasAttribute( '_cke_bookmark' ) )
+							if ( th.type == CKEDITOR.NODE_ELEMENT && !th.data( 'cke-bookmark' ) )
 							{
 								th.renameNode( 'th' );
Index: /CKEditor/branches/versions/3.5.x/_source/plugins/tableresize/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.5.x/_source/plugins/tableresize/plugin.js	(revision 6110)
+++ /CKEditor/branches/versions/3.5.x/_source/plugins/tableresize/plugin.js	(revision 6111)
@@ -299,5 +299,5 @@
 
 		resizer = CKEDITOR.dom.element.createFromHtml(
-			'<div cke_temp=1 contenteditable=false unselectable=on '+
+			'<div data-cke-temp=1 contenteditable=false unselectable=on '+
 			'style="position:absolute;cursor:col-resize;filter:alpha(opacity=0);opacity:0;' +
 				'padding:0;background-color:#004;background-image:none;border:0px none;z-index:10"></div>', document );
Index: /CKEditor/branches/versions/3.5.x/_source/plugins/undo/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.5.x/_source/plugins/undo/plugin.js	(revision 6110)
+++ /CKEditor/branches/versions/3.5.x/_source/plugins/undo/plugin.js	(revision 6111)
@@ -153,5 +153,5 @@
 
 		// In IE, we need to remove the expando attributes.
-		CKEDITOR.env.ie && contents && ( contents = contents.replace( /\s+_cke_expando=".*?"/g, '' ) );
+		CKEDITOR.env.ie && contents && ( contents = contents.replace( /\s+data-cke-expando=".*?"/g, '' ) );
 
 		this.contents	= contents;
@@ -268,5 +268,5 @@
 						// In IE, we need to remove the expando attributes.
 						if ( CKEDITOR.env.ie )
-							currentSnapshot = currentSnapshot.replace( /\s+_cke_expando=".*?"/g, '' );
+							currentSnapshot = currentSnapshot.replace( /\s+data-cke-expando=".*?"/g, '' );
 
 						if ( beforeTypeImage.contents != currentSnapshot )
Index: /CKEditor/branches/versions/3.5.x/_source/plugins/wysiwygarea/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.5.x/_source/plugins/wysiwygarea/plugin.js	(revision 6110)
+++ /CKEditor/branches/versions/3.5.x/_source/plugins/wysiwygarea/plugin.js	(revision 6111)
@@ -89,5 +89,5 @@
 			if ( CKEDITOR.env.webkit )
 			{
-				this.document.$.execCommand( 'inserthtml', false, '<span id="cke_paste_marker" cke_temp="1"></span>' );
+				this.document.$.execCommand( 'inserthtml', false, '<span id="cke_paste_marker" data-cke-temp="1"></span>' );
 				var marker = this.document.getById( 'cke_paste_marker' );
 				marker.scrollIntoView();
@@ -479,5 +479,5 @@
 					contentDomReadyHandler = CKEDITOR.tools.addFunction( contentDomReady );
 					var activationScript =
-						'<script id="cke_actscrpt" type="text/javascript" cke_temp="1">' +
+						'<script id="cke_actscrpt" type="text/javascript" data-cke-temp="1">' +
 							( isCustomDomain ? ( 'document.domain="' + document.domain + '";' ) : '' ) +
 							'window.parent.CKEDITOR.tools.callFunction( ' + contentDomReadyHandler + ', window );' +
@@ -792,5 +792,5 @@
 								// Build the additional stuff to be included into <head>.
 								var headExtra =
-									'<style type="text/css" cke_temp="1">' +
+									'<style type="text/css" data-cke-temp="1">' +
 										editor._.styles.join( '\n' ) +
 									'</style>';
@@ -800,5 +800,5 @@
 									headExtra );
 
-								var baseTag = config.baseHref ? '<base href="' + config.baseHref + '" cke_temp="1" />' : '';
+								var baseTag = config.baseHref ? '<base href="' + config.baseHref + '" data-cke-temp="1" />' : '';
 
 								if ( fullPage )
@@ -972,5 +972,5 @@
 				{
 					var title = editor.document.getElementsByTag( 'title' ).getItem( 0 );
-					title.setAttribute( '_cke_title', editor.document.$.title );
+					title.data( 'cke-title', editor.document.$.title );
 					editor.document.$.title = frameLabel;
 				});
