Hi xrayer, I think there might be a little problem with your IO.SYS patch!? Look at the bytes in the following 2 lines: (o=0x0, d=0xd) \HIMEM.SYSo/TESTMEM:ONdoo \HIMEMX.EXEo/MAX=999999do Since HIMEMX.EXE is one byte longer than HIMEM.SYS, the termination zero-byte 0x0 is moved one byte to the right by your patch. But this is exactly the byte where the HIMEM parameter /TESTMEM starts. So if IO.SYS is using the usual method of addressing strings (with a fixed address table), and I´m quite sure it indeed does it this way, then this address pointer for the parameter now points to this zero-byte (instead of the starting ´/´ of /MAX=...). So this parameter /MAX=999999 isn´t used at all by IO.SYS, I´m afraid! A simple solution would be to just rename HIMEMX.EXE to HIMEM.EXE, so the length would be the same as HIMEM.SYS and the terminating zero-byte doesn´t need to be moved. Furthermore you could now even use 1 full GB (1048576) instead of 999999, because after the /TESTMEM string there are 2 zero-bytes (but only 1 is needed of course), so you could increase the string length by 1 byte.