The term population viscosity refers to limited dispersal, which increases the genetic relatedness of neighbors. This effect both supports the evolution of altruism by focusing the altruists' gifts on relatives of the altruist, and also limits the extent to which altruism may emerge by exposing clusters of altruists to stiffer local competition. Previous analyses have emphasized the way in which these two effects can cancel, limiting the viability of altruism. These papers were based on models in which total population density was held fixed. We present here a class of models in which population density is permitted to fluctuate, so that patches of altruists are supported at a higher density than patches of non-altruists. Under these conditions, population viscosity can support the selection of both weak and strong altruism.