· via Hacker News – Front Page (native)
Windows 11 still ships Windows 95's heap manager via the EmulateHeap shim
Windows 11 26H2 still carries a recompiled copy of the Windows 95 heap manager, activated by the EmulateHeap compatibility shim for apps that depend on 1990s memory behaviour.

A 1995 heap manager inside Windows 11
Windows 11 still contains a working slice of the Windows 95 kernel. According to Windows Latest, a compatibility shim named EmulateHeap ships with Windows 11 26H2 and hands older applications a heap manager that behaves the way Windows 95's did. The shim lives inside Microsoft's application compatibility framework and only activates for programs flagged as needing it.
The SimCity bug that set the pattern
The story begins with SimCity for Windows 3.x. Joel Spolsky, the Stack Overflow co-founder and former Microsoft engineer, retold it in a 2000 essay based on an account from Jon Ross, who programmed that version of the game. Ross had left in a use-after-free bug: the game kept reading memory after releasing it. Nobody noticed because freed memory on Windows 3.x effectively stayed put, so the stale contents were still there whenever SimCity looked.
The game then broke on Windows 95 beta builds, which handled memory differently. Rather than wait for a patched release, Microsoft added detection logic to the operating system: when it spotted SimCity running, the memory allocator switched into a mode that postponed freeing blocks. As Windows Latest points out, EmulateHeap is a separate, later fix rather than that original hack, but both grew out of the same drive to keep imperfect legacy software working.
How EmulateHeap works
Microsoft engineer Raymond Chen covered the details in his Windows Confidential column in 2010. Many programs, not just games, had leaned on the forgiving nature of the Windows 95 heap: they would read freed memory and expect the old values to still be sitting in it. On later versions of Windows, which manage memory more strictly, those programs crashed.
EmulateHeap answers this by intercepting an application's heap-related API calls — HeapCreate, LocalLock, GlobalReAlloc and the rest — and routing them to substitutes that reproduce Windows 95 semantics. Chen described the construction as simple in design yet startling in its implications: Microsoft copied the source code of the Windows 95 heap manager, recompiled it, and added it to the compatibility infrastructure. The practical consequence is that a significant portion of the Windows 95 kernel travels inside modern Windows releases. Chen also noted that the old code is only loaded from disk when the shim is actually enabled for an app, so nothing from 1995 runs in the background on an ordinary PC.
Seeing it on a current machine
Windows Latest walks through how to find the shim today. Install the Windows Assessment and Deployment Kit — the September 2026 release officially supports Windows 11 26H2 — and select only the Application Compatibility Tools feature. Then open the 32-bit version of Compatibility Administrator, since most software of that era was 32-bit, create a new compatibility mode database, and scroll the list of available fixes down to EmulateHeap. Microsoft describes these fixes as small pieces of code that intercept API calls from applications.
Being listed is not the same as working reliably. After the Windows 11 22H2 update, the report notes, users found that enabling the shim caused problems of its own, including lost audio in Grand Theft Auto: Vice City and crashes in Need for Speed: Most Wanted.
There is an ironic contrast in what Microsoft keeps and what it discards. The company is rebuilding the decades-old Properties dialog with WinUI 3 while still shipping a Windows 95 heap manager for a handful of old programs, and it dropped 3D Pinball outright over a 64-bit bug the team could not justify spending days on.
Why it matters
EmulateHeap is a case study in how far a platform will go for backward compatibility: carrying three-decade-old kernel code so that unpatched games and business applications keep launching. For developers, it is a reminder that undefined behaviour can quietly become load-bearing, and that a platform vendor may absorb those bugs rather than break end users. It also exposes the limits of the strategy — shims themselves decay, as the 22H2 reports show, and each one carries a maintenance cost that must be weighed against the value of the apps it keeps alive.
- #windows
- #backward-compatibility
- #memory-management
- #legacy-software