We propose a new method for graph-based semi-supervised learning at very low label rates. The method is derived from carefully studying the degeneracy in Laplacian regularized learning with few labels, and amounts to placing sources and sinks at labeled nodes in the graph and solving a graph Poisson equation. We will discuss variational and random walk interpretations to give insights into the algorithm, and will present numerical experiments showing the method outperforms other recent Laplacian-based methods in semi-supervised learning.