further pfusch :) as usual, see difflog for details