Index: /CKEditor/tests/tt/4609/1.html
===================================================================
--- /CKEditor/tests/tt/4609/1.html	(revision 4452)
+++ /CKEditor/tests/tt/4609/1.html	(revision 4453)
@@ -3,6 +3,6 @@
 <html>
 <head>
-	<title>Ticket: #4608</title>
-	<meta name="tags" content="editor,unit,all">
+	<title>Ticket: #4609</title>
+	<meta name="tags" content="editor,unit,stable">
 	<script type="text/javascript" src="../../cktester/cell.js"></script>
 	<script>
Index: /CKEditor/trunk/CHANGES.html
===================================================================
--- /CKEditor/trunk/CHANGES.html	(revision 4452)
+++ /CKEditor/trunk/CHANGES.html	(revision 4453)
@@ -54,4 +54,5 @@
 		<li><a href="http://dev.fckeditor.net/ticket/4614">#4614</a> : Fixed attribute protection fails because of line-break.</li>
 		<li><a href="http://dev.fckeditor.net/ticket/4546">#4546</a> : Fixed UIColor plugin doesn't work when editor id contains CSS selector preserved keywords.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4609">#4609</a> : Fixed flash object is lost when loading data from outside editor.</li>
 	</ul>
 	<h3>
Index: /CKEditor/trunk/_source/core/dtd.js
===================================================================
--- /CKEditor/trunk/_source/core/dtd.js	(revision 4452)
+++ /CKEditor/trunk/_source/core/dtd.js	(revision 4453)
@@ -98,5 +98,5 @@
 		 * @example
 		 */
-		$nonEditable : {applet:1,button:1,embed:1,iframe:1,map:1,object:1,option:1,script:1,textarea:1},
+		$nonEditable : {applet:1,button:1,embed:1,iframe:1,map:1,object:1,option:1,script:1,textarea:1,param:1},
 
 		/**
Index: /CKEditor/trunk/_source/core/htmlparser/element.js
===================================================================
--- /CKEditor/trunk/_source/core/htmlparser/element.js	(revision 4452)
+++ /CKEditor/trunk/_source/core/htmlparser/element.js	(revision 4453)
@@ -36,5 +36,5 @@
 
 	var dtd			= CKEDITOR.dtd,
-		isBlockLike	= !!( dtd.$block[ name ] || dtd.$listItem[ name ] || dtd.$tableContent[ name ] ),
+		isBlockLike	= !!( dtd.$block[ name ] || dtd.$listItem[ name ] || dtd.$tableContent[ name ] || dtd.$nonEditable ),
 		isEmpty		= !!dtd.$empty[ name ];
 
Index: /CKEditor/trunk/_source/plugins/htmldataprocessor/plugin.js
===================================================================
--- /CKEditor/trunk/_source/plugins/htmldataprocessor/plugin.js	(revision 4452)
+++ /CKEditor/trunk/_source/plugins/htmldataprocessor/plugin.js	(revision 4453)
@@ -210,5 +210,5 @@
 	var encodedTagsRegex = /<cke:encoded>([^<]*)<\/cke:encoded>/gi;
 	var protectElementNamesRegex = /(<\/?)((?:object|embed|param)[\s\S]*?>)/gi;
-	var protectSelfClosingRegex = /<cke:param([\s\S]*?)\/>/gi;
+	var protectSelfClosingRegex = /<cke:(param|embed)([\s\S]*?)\/?>/gi;
 
 	function protectStyleTagsMatch( match )
@@ -227,5 +227,5 @@
 	function protectSelfClosingElements( html )
 	{
-		return html.replace( protectSelfClosingRegex, '<cke:param$1></cke:param>' );
+		return html.replace( protectSelfClosingRegex, '<cke:$1$2></cke:$1>' );
 	}
 
