diff -upr stk/act.offensive.c 149/act.offensive.c
--- stk/act.offensive.c	Mon Mar 30 22:37:38 1998
+++ 149/act.offensive.c	Sun Jun  7 23:31:21 1998
@@ -243,12 +243,14 @@ ACMD(do_order)
 ACMD(do_flee)
 {
   int i, attempt, loss;
+  struct char_data *was_fighting;
 
   if (GET_POS(ch) < POS_FIGHTING) {
     send_to_char("You are in pretty bad shape, unable to flee!\r\n", ch);
     return;
   }
 
+  was_fighting = FIGHTING(ch);
   for (i = 0; i < 6; i++) {
     attempt = number(0, NUM_OF_DIRS - 1);	/* Select a random direction */
     if (CAN_GO(ch, attempt) &&
@@ -256,15 +258,10 @@ ACMD(do_flee)
       act("$n panics, and attempts to flee!", TRUE, ch, 0, 0, TO_ROOM);
       if (do_simple_move(ch, attempt, TRUE)) {
 	send_to_char("You flee head over heels.\r\n", ch);
-	if (FIGHTING(ch)) {
-	  if (!IS_NPC(ch)) {
-	    loss = GET_MAX_HIT(FIGHTING(ch)) - GET_HIT(FIGHTING(ch));
-	    loss *= GET_LEVEL(FIGHTING(ch));
-	    gain_exp(ch, -loss);
-	  }
-	  if (FIGHTING(FIGHTING(ch)) == ch)
-	    stop_fighting(FIGHTING(ch));
-	  stop_fighting(ch);
+	if (was_fighting && !IS_NPC(ch)) {
+	  loss = GET_MAX_HIT(was_fighting) - GET_HIT(was_fighting);
+	  loss *= GET_LEVEL(was_fighting);
+	  gain_exp(ch, -loss);
 	}
       } else {
 	act("$n tries to flee, but can't!", TRUE, ch, 0, 0, TO_ROOM);
Binary files stk/act.offensive.o and 149/act.offensive.o differ
