order of validation execution

in which order are the validations executed that apply to the same
attribute.
Say I have this code in my model:

validates_presence_of :password
validates_confirmation_of :password, :message => "must match confirm
password", :if => Proc.new { |u| !u.password.blank? }

1) Are the validations executed in the order I coed them in the
model's file?
Or is it undetermined, and I should not rely on any order?

2) Is this behaviour the same in 2.x and 3.x?

thanks,
ALex.