The weight enumerator of a code is the polynomial begin{equation} W(x,y)= sum_{r=0}^n A_r x^{n-r} y^r, end{equation} where

denotes the block length and

, denotes the number of codewords of weight

. Let

be a self-dual code over

in which every weight is divisible by

. Then Gleason\´s theorem states that 1) if

= 2 and

= 2, the weight enumerator of

is a sum of products of the polynomials

and

if

= 2 and

= 4, the weight enumerator is a sum of products of

and

; and 3) if

= 3 and

= 3, the weight enumerator is a sum of products of

and

. In this paper we give several proofs of Gleason\´s theorem.