In this paper we describe a variation of the classical permutation decoding algorithm that can be applied to any affine-invariant code with respect to certain type of information sets. In particular, we can apply it to the family of first-order Reed-Muller codes with respect to the information sets introduced in [2]. Using this algorithm we improve considerably the number of errors we can correct in comparison with the known results in this topic.