Index: /FCKeditor.Net/trunk/FCKeditor.cs
===================================================================
--- /FCKeditor.Net/trunk/FCKeditor.cs	(revision 1160)
+++ /FCKeditor.Net/trunk/FCKeditor.cs	(revision 1161)
@@ -373,16 +373,57 @@
 		}
 
+		#endregion
+
+		#region Compatibility Check
+
 		public bool CheckBrowserCompatibility()
 		{
-			System.Web.HttpBrowserCapabilities oBrowser = Page.Request.Browser ;
+			return IsCompatibleBrowser( Page.Request );
+		}
+
+		/// <summary>
+		/// Checks if the current HTTP request comes from a browser compatible
+		/// with FCKeditor.
+		/// </summary>
+		/// <returns>"true" if the browser is compatible.</returns>
+		public static bool IsCompatibleBrowser()
+		{
+			return IsCompatibleBrowser( System.Web.HttpContext.Current.Request );
+		}
+
+		/// <summary>
+		/// Checks if the provided HttpRequest object comes from a browser
+		/// compatible with FCKeditor.
+		/// </summary>
+		/// <returns>"true" if the browser is compatible.</returns>
+		public static bool IsCompatibleBrowser( System.Web.HttpRequest request )
+		{
+			System.Web.HttpBrowserCapabilities oBrowser = request.Browser;
 
 			// Internet Explorer 5.5+ for Windows
-			if (oBrowser.Browser == "IE" && ( oBrowser.MajorVersion >= 6 || ( oBrowser.MajorVersion == 5 && oBrowser.MinorVersion >= 0.5 ) ) && oBrowser.Win32)
-				return true ;
-			else
-			{
-				Match oMatch = Regex.Match( this.Page.Request.UserAgent, @"(?<=Gecko/)\d{8}" ) ;
-				return ( oMatch.Success && int.Parse( oMatch.Value, CultureInfo.InvariantCulture ) >= 20030210 ) ;
-			}
+			if ( oBrowser.Browser == "IE" && ( oBrowser.MajorVersion >= 6 || ( oBrowser.MajorVersion == 5 && oBrowser.MinorVersion >= 0.5 ) ) && oBrowser.Win32 )
+				return true;
+
+			string sUserAgent = request.UserAgent;
+
+			if ( sUserAgent.Contains( "Gecko/" ) )
+			{
+				Match oMatch = Regex.Match( request.UserAgent, @"(?<=Gecko/)\d{8}" );
+				return ( oMatch.Success && int.Parse( oMatch.Value, CultureInfo.InvariantCulture ) >= 20030210 );
+			}
+
+			if ( sUserAgent.Contains( "Opera/" ) )
+			{
+				Match oMatch = Regex.Match( request.UserAgent, @"(?<=Opera/)[\d\.]+" );
+				return ( oMatch.Success && float.Parse( oMatch.Value, CultureInfo.InvariantCulture ) >= 9.5 );
+			}
+
+			if ( sUserAgent.Contains( "AppleWebKit/" ) )
+			{
+				Match oMatch = Regex.Match( request.UserAgent, @"(?<=AppleWebKit/)\d+" );
+				return ( oMatch.Success && int.Parse( oMatch.Value, CultureInfo.InvariantCulture ) >= 522 );
+			}
+
+			return false;
 		}
 
Index: /FCKeditor.Net/trunk/_whatsnew.html
===================================================================
--- /FCKeditor.Net/trunk/_whatsnew.html	(revision 1160)
+++ /FCKeditor.Net/trunk/_whatsnew.html	(revision 1161)
@@ -38,7 +38,10 @@
 		New Features and Improvements:</p>
 	<ul>
-		<li>Added specific project files for Visual Studio .NET 2003 and Visual Studio
-			2005. It's easier now to open the source in your preferred environment. Builds will
-			end up in the "1.1" (VS2003) and "2.0" (VS2005) folders inside bin/Debug and bin/Release.</li>
+		<li>Compatible with <strong>Safari 3.0+</strong> and <strong>Opera 9.50+</strong>.</li>
+		<li>Introduced the <strong>FCKeditor.IsCompatibleBrowser</strong> static function, to
+			check if the requesting browser is compatible with FCKeditor.</li>
+		<li>Added specific project files for <strong>Visual Studio .NET 2003</strong> and <strong>
+			Visual Studio 2005</strong>. It's easier now to open the source in your preferred environment. Builds will
+			end up in the "1.1" (VS2003) and "2.0" (VS2005) folders inside bin/Debug and bin/Release. </li>
 	</ul>
 	<p>
