Abstract The rejection behaviour of a nanofiltration membrane during the permeation of a salt solution typical of that found in dairy ultrafiltration permeate is described. It was shown that there was no one dominating separation mechanism, but rather the rejection behaviour was a function of both charge interactions and solute size. In simple binary solutions of KCl, it was shown that the pH dependent ion rejection minimum was at a higher pH value than the previously measured surface isoelectric point. This result suggested that the isoelectric point of the internal pore structure was higher than that on the surface. Addition of CaCl 2 resulted in the permeation of monovalent salts being highest at the pH values close to the natural pH of the ultrafiltraton permeate (pH 6.7–6.9). Conversely, the rejection of the multivalent anions, phosphate and citrate was highest at high pH values. In both cases, the rejection of calcium was enhanced at high pH values. This was due to binding of Ca 2+ and the multivalent anion to create charged species that are both electrostatically and sterically rejected by the membrane.