Leonardo USB -- device not accepting address, unable to enumerate.

My leonardo works 75% of the time, and then randomly this will occur after a reboot. I cannot get it to correct itself unless I reboot my box. Between this and the constant bouncing between ttyACM0 and ttyACM1 the Leonardo is driving me crazy.