It is not because malloc is failing that we will fail. When this happens, we run a GC collection which traverses all the available memory to see if we cannot reclaim some Eiffel objects to make some room. If it fails, then we explode the scavenge zone. When doing this, we can accomodate some more allocations untill we need a new block of memory which is most likely to fail and then we might throw the out of memory exception. But because part of the memory has been swapped to disk, the performance are usually very bad and it takes a very very long time in my experience to get the exception trace. This is why Ted reported that he had to wait a long time. On this issue, I was thinking that we could have a mode in the runtime to limit the allocated memory to what the OS can actually handle physically. That way you will never trash your system.