Error diffusion is an important technique for digital halftoning. It outperforms many other traditional halftoning methods in terms of gray fidelity and detail rendering. A drawback associated with the original error diffusion using the Floyd and Steinberg coefficients is that correlated patterns, sometimes called `worms', can appear in the shadow and highlight areas. The error spreading process can be represented by a linear filter. Non-symmetric diffusion of errors is the source for worm artifacts. In this paper, a new error diffusion weight set is presented, which has two advantages over the standard weights. First, it propagates the error in a more symmetrical manner, and consequently significantly reduces worm artifacts in shadow and highlight regions. Secondly, the new weights involves multiplication of numbers that are powers of 2. As a result, all the multiplications in calculating the error propagation can be implemented as bit shifting, which simplifies both software and hardware implementation.