  We show that for every finite set of prime numbers S, there are at most
finitely many singular moduli that are S-units. The key new ingredient is that
for every prime number p, singular moduli are p-adically disperse. We prove
analogous results for the Weber modular functions, the lambda invariants and
the McKay-Thompson series associated to the elements of the monster group.
Finally, we also obtain that a modular function that specializes to infinitely
many algebraic units at quadratic imaginary numbers must be a weak modular
unit.
