I believe what you have defined here are "optional" parameters, not just default.
since the compiler cant know if you are passing the 2nd or 3rd parameter when you only define 2 parameters for a 3 parameter procedure, you get an error.
An optional parameter must only be the last parameter unless something has changed recently.
MAS