A method of operating a memory system (90; 503) including a volatile buffer memory and a non-volatile memory circuit, the non-volatile memory circuit having a first section, where data is stored in a binary format, and a second section, where data is stored in a multi-state format, the method comprising: receiving data from a host; storing the received data in the buffer memory; transferring the data from the buffer memory into read/write registers of the non-volatile memory circuit; CHARACTERISED BY: performing a binary write operation of the data from the read/write registers to the first section of the non-volatile memory circuit; and subsequently folding portions of the data from the first section of the non-volatile memory to the second section of the non-volatile memory, wherein a folding operation includes: reading the portions of the data from multiple locations in the first section into the read/write registers; and performing a multi-state programming operation of the portions of the data from the read/write registers into a location of the second section of the non-volatile memory circuit, wherein the multi-state programming operation includes a first phase and a second phase and one or more binary write operations of the data from the read/write registers to the first section of the non-volatile memory circuit are performed between the phases of the multi-state programming operation. receiving data from a host; storing the received data in the buffer memory; transferring the data from the buffer memory into read/write registers of the non-volatile memory circuit; CHARACTERISED BY: performing a binary write operation of the data from the read/write registers to the first section of the non-volatile memory circuit; and subsequently folding portions of the data from the first section of the non-volatile memory to the second section of the non-volatile memory, wherein a folding operation includes: reading the portions of the data from multiple locations in the first section into the read/write registers; and performing a multi-state programming operation of the portions of the data from the read/write registers into a location of the second section of the non-volatile memory circuit, wherein the multi-state programming operation includes a first phase and a second phase and one or more binary write operations of the data from the read/write registers to the first section of the non-volatile memory circuit are performed between the phases of the multi-state programming operation. performing a binary write operation of the data from the read/write registers to the first section of the non-volatile memory circuit; and subsequently folding portions of the data from the first section of the non-volatile memory to the second section of the non-volatile memory, wherein a folding operation includes: reading the portions of the data from multiple locations in the first section into the read/write registers; and performing a multi-state programming operation of the portions of the data from the read/write registers into a location of the second section of the non-volatile memory circuit, reading the portions of the data from multiple locations in the first section into the read/write registers; and performing a multi-state programming operation of the portions of the data from the read/write registers into a location of the second section of the non-volatile memory circuit, wherein the multi-state programming operation includes a first phase and a second phase and one or more binary write operations of the data from the read/write registers to the first section of the non-volatile memory circuit are performed between the phases of the multi-state programming operation.