Abstract: Terminal voltage differences are controlled between individual battery cells in a battery during charging. The terminal voltage for each cell is measured, differences between the terminal voltages are determined, and a portion of the charging current is shunted in parallel to any of the cells in response thereto. A shunt device is connected in parallel to the respective battery cell and is arranged to shunt an electric current of a certain magnitude in response to the input signal value on a control input. A controller, with inputs connected to each battery cell and with outputs connected to the control input on the respective shunt device, measures voltage differences between individual cells and controls, in response thereto, the shunt devices for reducing or eliminating the voltage differences. The controller has a charging information history unit and storage means for storing, during an on-going charging cycle, terminal voltage data continuously read for each cell.