Why would the speed double up with diagonal movement? Are you using a fast loop?