In X-ray imaging, scatter can produce noise, artifacts, and decreased contrast. In practice, hardware such as anti-scatter grids are often used to reduce scatter. However, the remaining scatter can still be significant and additional software-based correction are desirable. Furthermore, good software solutions can potentially reduce the amount of needed anti-scatter hardware, thereby reducing cost. In this work, we developed a software correction algorithm by adapting a class of non-local image restoration techniques to scatter reduction. In this algorithm, scatter correction is formulated as a Bayesian MAP (maximum a posteriori) problem with a non-local prior, which leads to better textural detail preservation in scatter reduction. The efficacy of our algorithm is demonstrated through experimental and simulation results.