Abstract. We study a general approach to solving conservation laws of the form qt+f (q, x)x = 0, where the flux function f (q, x) has explicit spatial variation. Finite-volume methods are used in which the flux is discretized spatially, giving a function f i (q) over the ith grid cell and leading to a generalized Riemann problem between neighboring grid cells. A high-resolution wave-propagation algorithm is defined in which waves are based directly on a decomposition of flux differences f i (Q i ) − f i−1 (Q i−1 ) into eigenvectors of an approximate Jacobian matrix. This method is shown to be second-order accurate for smooth problems and allows the application of wave limiters to obtain sharp results on discontinuities. Balance laws qt + f (q, x)x = ψ(q, x) are also considered, in which case the source term is used to modify the flux difference before performing the wave decomposition, and an additional term is derived that must also be included to obtain full accuracy. This method is particularly useful for quasi-steady problems close to steady state.