I prefer the desktop IE interface to the new “Microsoft Edge” browser and I have IE set up the way I want (ad blocking, etc.). I do not want, however, to be constrained by the legacy MSHTML/Trident engine, which IE seems to default to. How can I enable the use of EdgeHTML by default in IE?


There was an option for this in about:flags, but that interface is unusably broken since IIRC build 10130 and still does not work in RTM as of July 24.

However, this registry setting still works to enable EdgeHTML in IE:

[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main]

Edit: In Windows 1511 (build 10586), this does no longer work.


There doesn't appear to be any way (as of build 10240) to still do this from within IE; about:flags seems to be gone entirely. However, (at least on Enterprise edition), you can edit the registry to enable EdgeHTML in IE. Be aware that it doesn't work perfectly, though; while normal browsing works, the browser will identify itself as Edge (and not as IE at all) unless you use the F12 dev tools to change the user agent string. The F12 tools themselves may not work correctly; features like network logging appear to be broken, and trying to switch out of Edge document mode may or may not work (I've had better results with the Emulation tab than with the dropdown on the right side of the top bar of the tools).

Here are some script-ready commands for enabling and disabling EdgeHTML in IE. They do not need to be run elevated, and must not be run as another user (such as an Admin):

reg add "HKCU\Software\Microsoft\Internet Explorer\Main" /v DisableRandomFlighting /t REG_DWORD /d 1 /f
reg add "HKCU\Software\Microsoft\Internet Explorer\Main" /v EnableLegacyEdgeSwitching /t REG_DWORD /d 1 /f

To restore default behavior, it is only necessary to clear (or delete) the latter value and restart IE:

reg add "HKCU\Software\Microsoft\Internet Explorer\Main" /v EnableLegacyEdgeSwitching /t REG_DWORD /d 0 /f

EDIT: This hack does work in Win10 Home, but does not work in Win10 build 10586.29 (Version 1511, also known as the "November Update"). At least, I can no longer get it to work on my Win10 Enterprise box after upgrading from build 10240. If anybody knows how to make this work on 10586, that knowledge would be much appreciated!

  • This works in build 10240 and limited what versions of Windows 10 precisely? – Ramhound Aug 30 '15 at 19:31
  • I'm on 10240 x64 Enterprise edition. It should work in all editions but I haven't tested this. No idea how many versions it will work for, or whether MS will either bring the feature back officially or kill it off for good. – CBHacking Aug 30 '15 at 19:34
  • Except it wont. This IE function only exists in Windows 10 Enterprise – Ramhound Aug 30 '15 at 19:41
  • 1
    Ah, darn. That seems incredibly foolish on Microsoft's part - like they're trying to encourage people not to use their browsers, by having one only run a legacy rendering engine and the other be extremely short on features - but so be it. I'll note that in the answer itself. – CBHacking Aug 30 '15 at 20:00
  • 1
    Eh, this isn't really the place to debate this, but... Edge is not ready. The crippled-by-design Windows RT had a better browser (in every way except rendering engine and dev tools, and only because it was using the then-current IE versions of those) than Edge. Edge doesn't support a host of standard features like RSS or multi-step Back/Forward, has miserable privacy controls with no way to filter cookies properly or block ads and other trackers, has bad tab management (though MSFT has been making IE's tab management steadily worse too; bring back Quick Tabs!), and has a space-wasting UI. – CBHacking Aug 30 '15 at 20:13

Complicated pseudo-solution on Win10 post-November-update; not really recommended but mostly functional: replace the MSHTML libraries with their EdgeHTML equivalents. This works... about as well as the earlier hack did for the previous build. Dev tools get a little screwed up and drag-and-drop stops working, but otherwise it mostly does the trick. Note that it does not change IE's user-agent string, which means that a lot of sites will still think you're using Trident instead of just testing what HTML/JS features your browser supports.

  1. Close all browser-type programs (this includes things the embed MSHTML, like Skype). It might be best to do this immediately after booting the system, and/or under a different user than usual.
  2. Take ownership of the following files as Administrator: C:\Windows\System32\mshtml.dll, C:\Windows\System32\en-US\mshtml.dll.mui, C:\Windows\SysWOW64\mshtml.dll, C:\Windows\SysWOW64\en-US\mshtml.dll.mui. A command you can use for this, from an elevated command prompt, is takeown /A /F <FILENAME>.
  3. For each of those files, modify the file's permissions so that you can rename the file. An example (slightly overkill) of how to do this from an elevated command prompt is icacls <FILENAME> /grant Administrators:F
  4. For each of those files, rename them to a "backup" name. For example, you might rename C:\Windows\System32\mshtml.dll to C:\Windows\System32\mshtml.dll.bak using the ren command (as Admin).
  5. Create symbolic links with the original file names, but pointing to the EdgeHTML versions of the files. For example, you might use the following command: mklink C:\Windows\System32\mshtml.dll C:\Windows\System32\edgehtml.dll. Note that mklink must be run not only as an Admin but from CMD.EXE; if you are using Powershell, prefix the mklink command with cmd /c, as in cmd /c mklink C:\Windows\System32\mshtml.dll C:\Windows\System32\edgehtml.dll

Rebooting at this point isn't technically needed, but may nonetheless be wise.

  • 1
    It can be done in a noninvasive way by symlinking Program Files\Internet Explorer\mshtml.dll to system32\edgehtml.dll, but it still does not restore 10240 fuctionality. In 10240 there was an auto-switching mechanism that switched to MSHTML when a website demanded compatibility mode. – kinokijuf Dec 12 '15 at 14:30
  • The edge-switching code seems to live in iertutil.dll, but swapping in the 10240 version of that DLL does not work… – kinokijuf Dec 12 '15 at 15:39
  • 1
    In build 10586, the code seems still to be there (strings like EnableLegacyEdgeSwitching are still in iertutil.dll), but it seems to be inactive… – kinokijuf Dec 12 '15 at 15:41
  • Oh right, good call on symlinking from the IE install directory. And yes, it is missing the auto-switching behavior and the dev tools seem more broken than before. Stuff works otherwise (I'm typing this from just such an IE/EdgeHTML hybrid). I'll keep looking for what it takes to restore more functionality. – CBHacking Dec 12 '15 at 19:52

I have managed to create the symlink on Windows Server 2016 RTM, that lacks Edge on default, like Windows 10 Enterprise ltsb . I had to create it directly in System32, since mshtml.dll is missing from Program Files/Internet Explorer. But the browsing engine test pages showed Internet Explorer 11. Restored the previous version of the files and discovered that edgehtml.dll is a phantom dll, it is actually mshtml.dll renamed, I so this at version number, it was 11, instead of 14. This is why webpages so it as IE. Maybe this is why you failed in enabling edgehtml.dll in IE, because it seems to be completly absent. You can try, if you want, to check to version of the file edgehtml.dll in Windows 10 Enterprise ltsb, on the Details tab, if it is so.

  • 1
    This question was asked during the intial Insider Preview releases of Windows 10 (i.e. builds before 10240). The intial plan for IE11 on Windows 10 was to have a new mode, called "Edge Mode" this plan was scrapped, and instead Microsoft Edge was developed. There is absustely no way to enabled "Edge Mode" in either Windows Server 2016 or Windows 10 Enterprise LTSB because the mode itself was only in the planning stages when it was scrapped. Any hacks that were discovered work for a reason I do not care to explain in a comment. – Ramhound Oct 12 '16 at 21:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.