Mineralogical stabilization of porcellaneous foraminifera is known to consist of chemical change without textural alteration at any scale. However, the nature of the alteration process has not been fully reconciled. Porcellaneous foraminifera from the freshwater diagenetic zone of two small islands in the Schooner Cays, Bahamas, are in the midst of Mg loss and delta 18 O change with no textural alteration at any scale. These data indicate that the mineralogical stabilization process, or recrystallization, is a repetitive intracrystal incongruent dissolution-precipitation reaction. Each recrystallization produces a calcite with a slightly lower Mg content than its predecessor. The rate of stabilization is dependent on time and hydrologic flux; older phreatic-zone material is the most altered and younger vadose-zone material is the least altered. Numerical modeling of the chemical diagenesis indicates that the molar water: rock ratio of a single recrystallization is << 1, and the resultant precipitate is not in equilibrium with the ambient pore waters. Repetitive recrystallizations, however, eventually yield a mineralogically stable low-Mg calcite (LMC) that is in equilibrium with the bulk pore waters. Complete mineralogical stabilization to LMC should occur at cumulative molar water: rock ratios of about 16 and will require ten to hundreds of recrystallizations, each reducing Mg content by no more than 0.1 mole %. The large number of recrystallizations with incrementally small chemical changes per recrystallization makes alteration of these foraminifera significantly different from single-step recrystallization of other types of bioclast. The simultaneous modeling of Mg concentrations and oxygen isotopic compositions requires a Mg partition coefficient (D Mg ) between 0.0001 and 0.0003. These values are two orders of magnitude less than that generally assigned to calcite precipitation from a large fluid reservoir, and they suggest that D Mg is dependent on the type and scale of reaction, though the nature of that dependency is unknown.