Bugs? ===== ptr%=FNm_alloc(FNm_alloc(0)) ---------------------------- If m_alloc(0) returns 0 because there is no memory available, the outer m_alloc() is called as m_alloc(0) which will return ptr% set to the amount of memory available. But we have already been told there was no memory available, so ptr% will correctly be zero. Negative size ------------- m_alloc(negative) cause problems, should return 0. Scanning list ------------- When scanning the slot list with UNTIL !A%>size% OR A%=0 at the end of the list A% will be zero, but !A% will fetch from location zero which is not part of the list. Scan for match -------------- Can't get scan for exact size to work.