Bug 404543 - Internal WebBrowser fails to detect IEVersion 10 and
incorrectly operates in IE9 compatibility mode only
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Browser/win32/org/eclipse/swt/browser/IE.java b/bundles/org.eclipse.swt/Eclipse SWT Browser/win32/org/eclipse/swt/browser/IE.java
index 5b77eb5..4b06cfc 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT Browser/win32/org/eclipse/swt/browser/IE.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT Browser/win32/org/eclipse/swt/browser/IE.java
@@ -189,16 +189,22 @@
 		};
 
 		/*
-		* Registry entry HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Version indicates
-		* which version of IE is installed.  Check this value in order to determine version-specific
-		* features that can be enabled.
+		* The installed version of IE can be determined by looking at registry entry
+		* HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\svcVersion, or
+		* HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Version (for
+		* IE releases prior to IE10).  Check this value in order to determine
+		* version-specific features that can be enabled.
 		*/
 		TCHAR key = new TCHAR (0, "Software\\Microsoft\\Internet Explorer", true);	//$NON-NLS-1$
 		long /*int*/ [] phkResult = new long /*int*/ [1];
 		if (OS.RegOpenKeyEx (OS.HKEY_LOCAL_MACHINE, key, 0, OS.KEY_READ, phkResult) == 0) {
 			int [] lpcbData = new int [1];
-			TCHAR buffer = new TCHAR (0, "Version", true); //$NON-NLS-1$
+			TCHAR buffer = new TCHAR (0, "svcVersion", true); //$NON-NLS-1$
 			int result = OS.RegQueryValueEx (phkResult [0], buffer, 0, null, (TCHAR) null, lpcbData);
+			if (result != 0) {
+				buffer = new TCHAR (0, "Version", true); //$NON-NLS-1$
+				result = OS.RegQueryValueEx (phkResult [0], buffer, 0, null, (TCHAR) null, lpcbData);
+			}
 			if (result == 0) {
 				TCHAR lpData = new TCHAR (0, lpcbData [0] / TCHAR.sizeof);
 				result = OS.RegQueryValueEx (phkResult [0], buffer, 0, null, lpData, lpcbData);