Let h be a mesh parameter corresponding to a finite element mesh for an elliptic problem. We describe preconditioning methods for two-level meshes which, for most problems solved in practice, behave as methods of optimal order in both storage and computational complexity. Namely, per mesh point, these numbers are bounded above by relatively small constants for all
h
⩾
h
0
h \geqslant {h_0}
, where
h
0
{h_0}
is small enough to cover all but excessively fine meshes. We note that, in practice, multigrid methods are actually solved on a finite, often even a fixed number of grid levels, in which case also these methods are not asymptotically optimal as
h
→
0
h \to 0
. Numerical tests indicate that the new methods are about as fast as the best implementations of multigrid methods applied on general problems (variable coefficients, general domains and boundary conditions) for all but excessively fine meshes. Furthermore, most of the latter methods have been implemented only for difference schemes of second order of accuracy, whereas our methods are applicable to higher order approximations. We claim that our scheme could be added fairly easily to many existing finite element codes.