It's worth noting that autonegotiate doesn't work the way most people expect. The important part is negotiate; it requires that both sides actively try to agree on the settings. Further, according to the standard, if autoneg fails the interface shall fallback to half-duplex (!)
That leads to some interresting (and to many, counterintuitive) effects. If for instance your switchport is set to full-duplex and the host use the default of auto, you're guaranteed a duplex mismatch.