In upsxml.php, find (line 345) :

if ( ($this->manual_negotiated_rate > 0) && ($this->use_negotiated_rates != 'True') ) {
$cost = ($this->manual_negotiated_rate * $cost)/100;
}

and change 'True' to 'False' so it look like :

if ( ($this->manual_negotiated_rate > 0) && ($this->use_negotiated_rates != 'False') ) {
$cost = ($this->manual_negotiated_rate * $cost)/100;
}


Also, for some reason I was getting a rate from Canada to US without any name but with a quote. After this line :

// changed to make handling percentage based
if ($this->handling_type == "Percentage") {

you find 2 lines starting with $methods[] = array('id' .....

simply add at the beginning of those 2 lines (350 & 352) : if ($_type) so it look like :

// changed to make handling percentage based
if ($this->handling_type == "Percentage") {
if ($_type) $methods[] = array('id' => $type, 'title' => $_type, 'cost' => ((($this->handling_fee * $cost)/100) + $cost));
} else {
if ($_type) $methods[] = array('id' => $type, 'title' => $_type, 'cost' => ($this->handling_fee + $cost));
}

Full 1.3.5 package with bug fixed

Marc

More...