Finite difference solutions of the Poisson-Boltzmann equation are used to calculate the pK(a) values of the functionally important ionizable groups in bacteriorhodopsin. There are strong charge-charge interactions between the residues in the binding site leading to the possibility of complex titration behavior. Structured water molecules, if they exist in the binding site, can have significant effects on the calculated pK(a) by strongly stabilizing ionized species. The ionization states of the Schiff base and Asp-85 are found to be strongly coupled. Small environmental changes, which might occur as a consequence of trans-cis isomerization, are capable of causing large shifts in the relative pK(a) values of these two groups. This provides an explanation for the protonation of Asp-85 and the deprotonation of the Schiff base in the M state of bacteriorhodopsin. The different behavior of Asp-85 and Asp-212 is discussed in this regard.