stack level too deep

def password=(pwd)
  @password = pwd
  return if pwd.blank?
  create_new_salt
  #self.hashed_password = Person.encrypted_password(self.password,
self.salt)
  self.password = Person.encrypted_password(self.password, self.salt)
end

This method is calling itself on the last line. Right before the
final "end." It will continue to do this until it runs out of stack
space and your program crashes.