SolAug1206

Define a function g : G -> G by g(x) = x^-1 f(x). If g(x) = g(y) then x^-1 f(x) = y^-1 f(y), thus xy^-1 = f(xy^-1). But f has no fixed points apart from the identity, so xy^-1 = 1. Consequently g is 1-1, and since G is finite, it follows that g is surjective.

Now, let x be any element of G. From the previous paragraph, there exists y in G so that x = y^-1 f(y). Therefore f(x) = f(y^-1) f(f(y)) = (f(y))^-1 y = x^-1. But the function x -> x^-1 is a homomorphism if and only if G is Abelian, so we are done.