A fast algorithm that detects internal cavities in proteins and predicts the positions of buried water molecules is described. The cavities are characterized in terms of volume, surface area, polarity, and the presence of bound waters. The algorithm is applied to 12 proteins whose structures are known to high resolution and successfully predicts the locations of over 80% of internal water molecules. Most proteins are found to have a number of internal cavities ranging in volume from 10 to 180 A3. Some of these cavities contain water and some do not, with the probability of containing a buried water increasing with cavity size. However, many large cavities are found to be empty (i.e., they do not contain a crystallographically determined water). For multidomain proteins over half of the total cavity volume is at the interdomain interface. Possible implications for the energetics of cavity formation and for the functional role of internal cavities are discussed.