--- FCKeditor_orig.java	2005-08-11 16:49:40.000000000 +0200
+++ FCKeditor.java	2006-05-01 20:32:04.000000000 +0200
@@ -246,23 +246,40 @@
 		if ((userAgent.indexOf("msie") !=-1) && (userAgent.indexOf("mac") == -1) && (userAgent.indexOf("opera") == -1)) {
 			if(retrieveBrowserVersion(userAgent)>=5.5)
 				return true;
-		}
+		}
 		else if (userAgent.indexOf("gecko") !=-1){
-			if(retrieveBrowserVersion(userAgent)>=20030210)
+			if(retrieveBrowserVersion(userAgent)>=1.3) // >=1.3 according to fckeditor.net
 				return true;
 		}
 		return false;
 	}
 	
-	private double retrieveBrowserVersion(String userAgent) {
+	private double retrieveBrowserVersion(String userAgent) {
 		if(userAgent.indexOf("msie")>-1) {
 			String str = userAgent.substring(userAgent.indexOf("msie") + 5);
 			return Double.parseDouble(str.substring(0, str.indexOf(";")));
-		}
-		else {
-			String str = userAgent.substring(userAgent.indexOf("gecko") + 6);
-			return Double.parseDouble(str.substring(0, 8));
-		}
+		} else {
+/* 			The following case fails:
+			String str = userAgent.substring(userAgent.indexOf("gecko") + 6); 
+			"Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.8.0.2) Gecko/Debian-1.5.dfsg+1.5.0.2-3 Firefox/1.5.0.2
+			
+			According to:
+			http://en.wikipedia.org/wiki/User_agent#Mozilla
+
+			Fix: 
+*/
+			String str = userAgent.split("(.+rv:)|((; .+)*\\).+)")[1].substring(0,3);
+			return Double.parseDouble(str);
+/* 			Checked in:
+			* Firefox 1.5.0.2 / Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-US; rv:1.8.0.2) Gecko/Debian-1.5.dfsg+1.5.0.2-3 Firefox/1.5.0.2
+			* Firefox 1.5.0.2 / Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.2) Gecko/20060308 Firefox/1.5.0.2
+			* Mozilla 1.7.12
+			* Epiphany 1.8.3
+
+			Doesn't (obviously) work in:
+			* mozilla/5.0 (compatible; konqueror/3.5; linux) khtml/3.5.2 (like gecko)
+*/
+		} 
 	}
 	
 	private String HTMLEncode(String txt) {
