Index: /FCKeditor.Java/branches/2.4/java-core/src/main/java/net/fckeditor/response/UploadResponse.java
===================================================================
--- /FCKeditor.Java/branches/2.4/java-core/src/main/java/net/fckeditor/response/UploadResponse.java	(revision 1965)
+++ /FCKeditor.Java/branches/2.4/java-core/src/main/java/net/fckeditor/response/UploadResponse.java	(revision 1966)
@@ -84,5 +84,5 @@
 	 * <p>
 	 * If you need to set error number and message only, use constructor with
-	 * one paremeter and call {@link UploadResponse#setCustomMessage(String)}.
+	 * one parameter and call {@link UploadResponse#setCustomMessage(String)}.
 	 * 
 	 * @param arguments
@@ -136,6 +136,9 @@
 	@Override
 	public String toString() {
-		StringBuffer sb = new StringBuffer(75);
+		StringBuffer sb = new StringBuffer(150);
 		sb.append("<script type=\"text/javascript\">\n");
+        // Minified version of the document.domain automatic fix script.
+		// The original script can be found at _dev/domain_fix_template.js
+		sb.append("(function(){var d=document.domain;while (true){try{var A=window.top.opener.document.domain;break;}catch(e) {};d=d.replace(/.*?(?:\\.|$)/,'');if (d.length==0) break;try{document.domain=d;}catch (e){break;}}})();\n");
 		sb.append("window.parent.OnUploadCompleted(");
 
Index: /FCKeditor.Java/branches/2.4/java-core/src/test/java/net/fckeditor/tool/UploadResponseTest.java
===================================================================
--- /FCKeditor.Java/branches/2.4/java-core/src/test/java/net/fckeditor/tool/UploadResponseTest.java	(revision 1965)
+++ /FCKeditor.Java/branches/2.4/java-core/src/test/java/net/fckeditor/tool/UploadResponseTest.java	(revision 1966)
@@ -29,4 +29,5 @@
 				UploadResponse.EN_INVALID_EXTENSION);
 		String expected = new String("<script type=\"text/javascript\">\n"
+				+ "(function(){var d=document.domain;while (true){try{var A=window.top.opener.document.domain;break;}catch(e) {};d=d.replace(/.*?(?:\\.|$)/,'');if (d.length==0) break;try{document.domain=d;}catch (e){break;}}})();\n"
 				+ "window.parent.OnUploadCompleted(202);\n</script>");
 		assertEquals(expected, actual.toString());
@@ -37,4 +38,5 @@
 		UploadResponse actual = new UploadResponse(UploadResponse.EN_OK,"/fckeditor-java/userfiles/image/fredck.jpg");
 		String expected = new String("<script type=\"text/javascript\">\n"
+				+ "(function(){var d=document.domain;while (true){try{var A=window.top.opener.document.domain;break;}catch(e) {};d=d.replace(/.*?(?:\\.|$)/,'');if (d.length==0) break;try{document.domain=d;}catch (e){break;}}})();\n"
 				+ "window.parent.OnUploadCompleted(0,'/fckeditor-java/userfiles/image/fredck.jpg');\n</script>");
 		assertEquals(expected, actual.toString());
@@ -45,4 +47,5 @@
 		UploadResponse actual = new UploadResponse(UploadResponse.EN_RENAMED,"/fckeditor-java/userfiles/image/hacked_php.txt","hacked_php.txt");
 		String expected = new String("<script type=\"text/javascript\">\n"
+				+ "(function(){var d=document.domain;while (true){try{var A=window.top.opener.document.domain;break;}catch(e) {};d=d.replace(/.*?(?:\\.|$)/,'');if (d.length==0) break;try{document.domain=d;}catch (e){break;}}})();\n"
 				+ "window.parent.OnUploadCompleted(201,'/fckeditor-java/userfiles/image/hacked_php.txt','hacked_php.txt');\n</script>");
 		assertEquals(expected, actual.toString());
@@ -54,4 +57,5 @@
 		actual.setCustomMessage("some error");
 		String expected = new String("<script type=\"text/javascript\">\n"
+				+ "(function(){var d=document.domain;while (true){try{var A=window.top.opener.document.domain;break;}catch(e) {};d=d.replace(/.*?(?:\\.|$)/,'');if (d.length==0) break;try{document.domain=d;}catch (e){break;}}})();\n"
 				+ "window.parent.OnUploadCompleted(1,'','','some error');\n</script>");
 		assertEquals(expected, actual.toString());
@@ -63,4 +67,5 @@
 		UploadResponse actual = new UploadResponse(UploadResponse.EN_ERROR,null,null,null);
 		String expected = new String("<script type=\"text/javascript\">\n"
+				+ "(function(){var d=document.domain;while (true){try{var A=window.top.opener.document.domain;break;}catch(e) {};d=d.replace(/.*?(?:\\.|$)/,'');if (d.length==0) break;try{document.domain=d;}catch (e){break;}}})();\n"
 				+ "window.parent.OnUploadCompleted(1,'','','');\n</script>");
 		assertEquals(expected, actual.toString());
