A method of operating a memory device, the method comprising: performing (608/708) an error correction code operation on user data stored in a first portion of a memory array of the memory device; determining (614/714) if an error exists in user data stored in the first portion of the memory array responsive to performing the ECC operation; and if an error is determined to exist: applying one or more programming pulses to memory cells of the first portion of the memory array if a memory cell of the first portion of the memory array contributed to the determined error due to a decrease in threshold voltage; characterised by adjusting one or more trim values of the memory device for performing a read operation on user data stored in the memory array and storing the adjusted one or more trim values in the memory device, if an error is determined to exist and a threshold voltage shift is determined in a number of memory cells of the first portion of the memory array; wherein the one or more trim values comprise a trim value corresponding to a minimum read voltage (VreadMin) for the read operation and/or a trim value corresponding to a maximum read voltage (VreadMax) for the read operation, and the adjusted one or more trim values are stored in the memory device to define the voltages to be utilized during subsequent read operations performed on the memory cells of the first portion of the memory array. performing (608/708) an error correction code operation on user data stored in a first portion of a memory array of the memory device; determining (614/714) if an error exists in user data stored in the first portion of the memory array responsive to performing the ECC operation; and if an error is determined to exist: applying one or more programming pulses to memory cells of the first portion of the memory array if a memory cell of the first portion of the memory array contributed to the determined error due to a decrease in threshold voltage; characterised by adjusting one or more trim values of the memory device for performing a read operation on user data stored in the memory array and storing the adjusted one or more trim values in the memory device, if an error is determined to exist and a threshold voltage shift is determined in a number of memory cells of the first portion of the memory array; wherein the one or more trim values comprise a trim value corresponding to a minimum read voltage (VreadMin) for the read operation and/or a trim value corresponding to a maximum read voltage (VreadMax) for the read operation, and the adjusted one or more trim values are stored in the memory device to define the voltages to be utilized during subsequent read operations performed on the memory cells of the first portion of the memory array. adjusting one or more trim values of the memory device for performing a read operation on user data stored in the memory array and storing the adjusted one or more trim values in the memory device, if an error is determined to exist and a threshold voltage shift is determined in a number of memory cells of the first portion of the memory array; wherein the one or more trim values comprise a trim value corresponding to a minimum read voltage (VreadMin) for the read operation and/or a trim value corresponding to a maximum read voltage (VreadMax) for the read operation, and the adjusted one or more trim values are stored in the memory device to define the voltages to be utilized during subsequent read operations performed on the memory cells of the first portion of the memory array.