Many accumulation-like procedures on weighted graphs do not work correctly with negative values. If you find that's the case, you can still get the desired result by computing two flow accumulations involving positive values only. Let -w be equal to or less than the most negative weight in the grid (w is positive). For any weight raster [G] let f([G]) stand for the flow accumulation grid. Note that both [G] + w and w (a grid of constant values) have non-negative weights, so that you will be able to compute f1 = f([G]+w) and f0 = f(w). The grid f1 - f0 does the trick, because the flow accumulation procedure is a linear function of the weights.