diff --git a/dat/outfit.xml b/dat/outfit.xml
index 90742c9..d193d7b 100644
--- a/dat/outfit.xml
+++ b/dat/outfit.xml
@@ -177,7 +177,7 @@
 <duration>5</duration>
 <lockon>1</lockon>
 <thrust>1600</thrust>
-<turn>200</turn>
+<turn>60</turn>
 <speed>800</speed>
 <damage type="kinetic">20</damage>
 </specific>
@@ -212,8 +212,8 @@
 <duration>7</duration>
 <lockon>0.5</lockon>
 <thrust>1300</thrust>
-<turn>200</turn>
-<speed>650</speed>
+<turn>90</turn>
+<speed>550</speed>
 <damage type="kinetic">20</damage>
 </specific>
 </outfit>
diff --git a/src/weapon.c b/src/weapon.c
index 6463a04..be52657 100644
--- a/src/weapon.c
+++ b/src/weapon.c
@@ -72,7 +72,7 @@ static void weapon_destroy(Weapon* w, WeaponLayer layer);
 static void weapon_free(Weapon* w);
 /* Think. */
 static void think_seeker(Weapon* w, const double dt);
-static void think_smart(Weapon* w, const double dt);
+/*static void think_smart(Weapon* w, const double dt);*/
 /* Extern. */
 void weapon_minimap(const double res, const double w,
     const double h, const RadarShape shape);
@@ -104,6 +104,7 @@ void weapon_minimap(const double res, const double w,
 /* Seeker brain, You get what you pay for. :) */
 static void think_seeker(Weapon* w, const double dt) {
   double diff;
+  double vel;
   if(w->target == w->parent) return; /* HEY! Self harm is not allowed. */
 
   Pilot* p = pilot_get(w->target);
@@ -114,7 +115,7 @@ static void think_seeker(Weapon* w, const double dt) {
 
   /* Ammo isn't locked on yet.. */
   if(SDL_GetTicks() > (w->outfit->u.amm.lockon)) {
-    diff = angle_diff(w->solid->dir, vect_angle(&w->solid->pos, &p->solid->pos));
+    /*diff = angle_diff(w->solid->dir, vect_angle(&w->solid->pos, &p->solid->pos));*/
     w->solid->dir_vel = 10 * diff * w->outfit->u.amm.turn;
     /* Face the target. */
     if(w->solid->dir_vel > w->outfit->u.amm.turn)
@@ -123,15 +124,17 @@ static void think_seeker(Weapon* w, const double dt) {
       w->solid->dir_vel = -w->outfit->u.amm.turn;
   }
 
-  vect_pset(&w->solid->force, w->outfit->u.amm.thrust, w->solid->dir);
-
-  limit_speed(&w->solid->vel, w->outfit->u.amm.speed, dt);
+  /* Limit speed here. */
+  vel = MIN(w->outfit->u.amm.speed, VMOD(w->solid->vel) + w->outfit->u.amm.thrust*dt);
+  vect_pset(&w->solid->vel, vel, w->solid->dir);
+  /*limit_speed(&w->solid->vel, w->outfit->u.amm.speed, dt);*/
 }
 
 /* ========================================================
  *  Smart seeker brain. Much better at homing.
  * ========================================================
  */
+#if 0
 static void think_smart(Weapon* w, const double dt) {
   Vec2 sv, tv;
   double t;
@@ -168,6 +171,7 @@ static void think_smart(Weapon* w, const double dt) {
   limit_speed(&w->solid->vel, w->outfit->u.amm.speed, dt);
 
 }
+#endif
 
 /* Update all the weapon layers. */
 void weapons_update(const double dt) {
@@ -385,10 +389,11 @@ static Weapon* weapon_create(const Outfit* outfit, const double dir, const Vec2*
       pilot_target->lockons++;
 
     /* Only diff is AI. */
-    if(outfit->type == OUTFIT_TYPE_MISSILE_SEEK_AMMO)
+    w->think = think_seeker; /* AI is the same atm. */
+    /*if(outfit->type == OUTFIT_TYPE_MISSILE_SEEK_AMMO)
       w->think = think_seeker;
     else if(outfit->type == OUTFIT_TYPE_MISSILE_SEEK_SMART_AMMO)
-      w->think = think_smart;
+      w->think = think_smart;*/
     break;
  
   /* Just dump it where the player is. */