Index: /FCKeditor/branches/developers/alfonsoml/_whatsnew.html
===================================================================
--- /FCKeditor/branches/developers/alfonsoml/_whatsnew.html	(revision 149)
+++ /FCKeditor/branches/developers/alfonsoml/_whatsnew.html	(revision 150)
@@ -53,4 +53,11 @@
 		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&atid=543653&aid=1653009&group_id=75348">SF
 			BUG-1653009</a>] If the server is configured to process html files as asp then it generated ASP error 0138.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&atid=543653&aid=1288609&group_id=75348">SF
+			BUG-1288609</a>] The content of iframes are preserved.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&atid=543653&aid=1245504&group_id=75348">SF
+			BUG-1245504</a>] [<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&atid=543653&aid=1652240&group_id=75348">SF
+				BUG-1652240</a>] Flash files without the .swf extension weren't recognized upon reload.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&aid=1649753&group_id=75348&atid=543655">SF
+			PATCH-1649753</a>] Node selection for text didn't work in IE. Thanks to yurik dot m.</li>
 	</ul>
 	<h3>
Index: /FCKeditor/branches/developers/alfonsoml/editor/_source/internals/fckdocumentprocessor.js
===================================================================
--- /FCKeditor/branches/developers/alfonsoml/editor/_source/internals/fckdocumentprocessor.js	(revision 149)
+++ /FCKeditor/branches/developers/alfonsoml/editor/_source/internals/fckdocumentprocessor.js	(revision 150)
@@ -134,5 +134,11 @@
 	while ( i >= 0 && ( oEmbed = aEmbeds[i--] ) )
 	{
-		if ( oEmbed.src.EndsWith( '.swf', true ) )
+		// IE doesn't return the type attribute with oEmbed.type or oEmbed.getAttribute("type") 
+		// But it turns out that after accessing it then it doesn't gets copied later
+		var oType = oEmbed.attributes[ 'type' ] ;
+
+		// Check the extension and the type. Now it should be enough with just the type
+		// Opera doesn't return oEmbed.src so oEmbed.src.EndsWith will fail
+		if ( (oEmbed.src && oEmbed.src.EndsWith( '.swf', true )) || ( oType && oType.nodeValue == 'application/x-shockwave-flash' ) )
 		{
 			var oCloned = oEmbed.cloneNode( true ) ;
@@ -148,4 +154,6 @@
 					if ( oAtt ) oCloned.setAttribute( aAttributes[iAtt], oAtt ) ;
 				}
+				// It magically gets lost after reading it in oType
+				oCloned.setAttribute( 'type', oType.nodeValue ) ;
 			}
 
Index: /FCKeditor/branches/developers/alfonsoml/editor/_source/internals/fckselection_ie.js
===================================================================
--- /FCKeditor/branches/developers/alfonsoml/editor/_source/internals/fckselection_ie.js	(revision 149)
+++ /FCKeditor/branches/developers/alfonsoml/editor/_source/internals/fckselection_ie.js	(revision 150)
@@ -68,5 +68,5 @@
 	{
 		// If failed, select it as a text range.
-		oRange = FCK.EditorDocument.selection.createRange() ;
+		oRange = FCK.EditorDocument.body.createTextRange() ;
 		oRange.moveToElementText( node ) ;
 	}
Index: /FCKeditor/branches/developers/alfonsoml/editor/_source/internals/fcktools.js
===================================================================
--- /FCKeditor/branches/developers/alfonsoml/editor/_source/internals/fcktools.js	(revision 149)
+++ /FCKeditor/branches/developers/alfonsoml/editor/_source/internals/fcktools.js	(revision 150)
@@ -92,4 +92,16 @@
 	text = text.replace( /</g, '&lt;' ) ;
 	text = text.replace( />/g, '&gt;' ) ;
+
+	return text ;
+}
+
+FCKTools.HTMLDecode = function( text )
+{
+	if ( !text )
+		return '' ;
+
+	text = text.replace( /&gt;/g, '>' ) ;
+	text = text.replace( /&lt;/g, '<' ) ;
+	text = text.replace( /&amp;/g, '&' ) ;
 
 	return text ;
Index: /FCKeditor/branches/developers/alfonsoml/editor/_source/internals/fckxhtml.js
===================================================================
--- /FCKeditor/branches/developers/alfonsoml/editor/_source/internals/fckxhtml.js	(revision 149)
+++ /FCKeditor/branches/developers/alfonsoml/editor/_source/internals/fckxhtml.js	(revision 150)
@@ -440,4 +440,22 @@
 
 		return node ;
+	},
+
+	// IE loses contents of iframes, and Gecko does give it back HtmlEncoded
+	// Note: Opera does lose the content and doesn't provide it in the innerHTML string
+	iframe : function( node, htmlNode )
+	{
+		var sHtml = htmlNode.innerHTML ;
+
+		// Gecko does give back the encoded html
+		if ( FCKBrowserInfo.IsGecko )
+			sHtml = FCKTools.HTMLDecode( sHtml );
+		
+		// Remove the saved urls here as the data won't be processed as nodes
+		sHtml = sHtml.replace( /\s_fcksavedurl="[^"]*"/g, '' ) ;
+
+		node.appendChild( FCKXHtml.XML.createTextNode( FCKXHtml._AppendSpecialItem( sHtml ) ) ) ;
+
+		return node ;
 	}
 } ;
