Problema con servo!

Hola, les comento:
Tengo un pequeño problema, es muy simple, pero no logro solucionarlo, tengo este código:

#include <Servo.h>

Servo servo1;

void setup()
{
servo1.attach(3);
}

void loop()
{
servo1.write(80);
delay(2000);
servo1.write(160);
delay(2000);
}

Y quiero que el servo vaya hasta la pocisión 160º, esté ahi durante 2 segundos y luego vuelva a 80º. El problema viene ahora, el servo en vez de ir directamente de 160º a 80º hace el siguiente recorrido:
160º - 0º - 80º
Como podría solucionarlo?
Gracias de antemano.