A method of storing and reading data, using a memory that includes a
plurality of cells (e.g. flash cells), such that data are stored in the
cells by setting respective values of a physical parameter of the cells
(e.g. threshold voltage) to be indicative of the data, and such that data
are read from the cells by measuring those values. One of the cells and
its neighbors are read. The data stored in the cell are estimated, based
on the measurements and on respective extents to which the neighbors
disturb the reading. Preferably, the method also includes determining
those respective extents to which the neighbors disturb the reading, for
example based on the measurements themselves.