>it can't multiply negative numbers. (neg * neg, pos * neg, and neg * pos all equal 0).

doh! i forgot to take the abs of the numbers then work out the sign at the end like I did with the divide function, how could i have missed that *bangs head on table*