Cytochrome bd is a terminal component of the respiratory chain of Escherichia coli catalyzing reduction of molecular oxygen to water. It contains three hemes, b 558 , b 595 , and d. The detailed spectroelectrochemical redox titration and numerical modeling of the data reveal significant redox interaction between the low-spin heme b 558 and high-spin heme b 595 , whereas the interaction between heme d and either hemes b appears to be rather weak. However, the presence of heme d itself decreases much larger interaction between the two hemes b. Fitting the titration data with a model where redox interaction between the hemes is explicitly included makes it possible to extract individual absorption spectra of all hemes. The α- and β-band reduced-minus-oxidized difference spectra agree with the data published earlier ([22] J.G. Koland, M.J. Miller, R.B. Gennis, Potentiometric analysis of the purified cytochrome d terminal oxidase complex from Escherichia coli, Biochemistry 23 (1984) 1051–1056., and [23] R.M. Lorence, J.G. Koland, R.B. Gennis, Coulometric and spectroscopic analysis of the purified cytochrome d complex of Escherichia coli: evidence for the identification of “cytochrome a 1 ” as cytochrome b 595 , Biochemistry 25 (1986) 2314–2321.). The Soret band spectra show λ max =429.5 nm, λ min ≈413 nm (heme b 558 ), λ max =439 nm, λ min ≈400±1 nm (heme b 595 ), and λ max =430 nm, λ min =405 nm (heme d). The spectral contribution of heme d to the complex Soret band is much smaller than those of either hemes b; the Soret/α (ΔA 430 :ΔA 629 ) ratio for heme d is 1.6.