Flies acquire information about self-rotation via Coriolis forces detected by their moving halteres. Information processing in the haltere system was analysed by exploiting the method of simulating rotational stimuli by vibrating the fly's body and simultaneously observing compensatory head and wing reactions. Although the force acting on one haltere contains Coriolis terms for rotations about three orthogonal axes, the one-haltered fly has only two measuring axes which are coded in lateral force components. A fly with two halteres has two vertical measuring axes and two horizontal axes, the latter spanning an angle of about 120 degrees. Thus, three-dimensional turning information is acquired by bilateral computation in a highly non-orthogonal system. In the stimulus velocity range up to 1000 degrees/s, comparison of intact and one-haltered flies demonstrates that for the head roll reaction the inputs from both halteres are summated, whereas for the pitch reaction the summated inputs are modified by bilateral inhibition. This non-linear operation results in uniform gains and axis fidelity for all stimulus directions in the case of the head reaction. Response saturation at high velocities takes place after the bilateral summation. The functional consequences of non-orthogonality in the dipteran haltere system is apparently superior sensitivity for pitch compared to roll. Minimization of the "area of confusion", an argument for orthogonality, seems to be of minor importance. The non-orthogonality necessitates a transformation from covariant projections to contravariant motor components. In tensor theory of the vestibulo-ocular reflex of vertebrates, this is widely assumed to be a linear operation performed by a metric tensor. The fly's solution is a linear tensor operation supplemented by a non-linear bilateral inhibition for the pitch reaction.