An apparatus, comprising: an array (110; 210; 610) of memory cells wherein each memory cell is configured to store multiple digits of data, the multiple digits of data comprising at least a first digit contributing to a lower page of data and a second digit contributing to an upper page of data and wherein a digit value is stored in the memory cell by applying a programming pulse to increase a threshold voltage to a desired voltage level corresponding to the digit value; and a shaping encoder (114; 614-1) coupled to the array (110; 210; 610) and configured to encode each of a number of received digit patterns according to a mapping of received digit patterns to shaping digit patterns; wherein the mapping of received digit patterns to shaping digit patterns obeys a shaping constraint that limits, to an uppermost amount, an amount of consecutive digits of the shaping digit patterns allowed to have a particular digit value; wherein the shaping encoder (114; 614-1) is configured to receive a number of digit patterns to be stored in the array of memory cells and configured to encode only those digit patterns of the number of received digit patterns that are programmed to a lower page of data corresponding to a group of memory cells, wherein the group of memory cells is configured to store data corresponding to the lower page of data and at least one additional page of data; and wherein the shaping constraint is configured to skew stored digit patterns toward digit patterns corresponding to lower threshold voltage levels as compared to threshold voltage levels to which unencoded digit patterns correspond. an array (110; 210; 610) of memory cells wherein each memory cell is configured to store multiple digits of data, the multiple digits of data comprising at least a first digit contributing to a lower page of data and a second digit contributing to an upper page of data and wherein a digit value is stored in the memory cell by applying a programming pulse to increase a threshold voltage to a desired voltage level corresponding to the digit value; and a shaping encoder (114; 614-1) coupled to the array (110; 210; 610) and configured to encode each of a number of received digit patterns according to a mapping of received digit patterns to shaping digit patterns; wherein the mapping of received digit patterns to shaping digit patterns obeys a shaping constraint that limits, to an uppermost amount, an amount of consecutive digits of the shaping digit patterns allowed to have a particular digit value; wherein the shaping encoder (114; 614-1) is configured to receive a number of digit patterns to be stored in the array of memory cells and configured to encode only those digit patterns of the number of received digit patterns that are programmed to a lower page of data corresponding to a group of memory cells, wherein the group of memory cells is configured to store data corresponding to the lower page of data and at least one additional page of data; and wherein the shaping constraint is configured to skew stored digit patterns toward digit patterns corresponding to lower threshold voltage levels as compared to threshold voltage levels to which unencoded digit patterns correspond.