diff --git a/gas/ChangeLog b/gas/ChangeLog
index f2f84817997..94bb8e046bd 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,8 @@
+2001-07-27  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
+
+	* config/tc-m68hc11.c (md_estimate_size_before_relax): Fix bsr
+	and bra relax: update fragP->fr_fix after the fixup.
+
 2001-07-27  Tracy Kuhrt  <Tracy.Kuhrt@microchip.com>
 
 	* read.c (s_set): Check for missing symbol name.
diff --git a/gas/config/tc-m68hc11.c b/gas/config/tc-m68hc11.c
index c73f575cb78..2c2b80c1654 100644
--- a/gas/config/tc-m68hc11.c
+++ b/gas/config/tc-m68hc11.c
@@ -2595,9 +2595,9 @@ md_estimate_size_before_relax (fragP, segment)
 		 necessary for the unresolved symbol address.  */
 	      fragP->fr_opcode[0] = convert_branch (fragP->fr_opcode[0]);
 
-	      fragP->fr_fix++;
-	      fix_new (fragP, old_fr_fix - 1, 2, fragP->fr_symbol,
+	      fix_new (fragP, fragP->fr_fix - 1, 2, fragP->fr_symbol,
 		       fragP->fr_offset, 0, BFD_RELOC_16);
+	      fragP->fr_fix++;
 	      break;
 
 	    case STATE_CONDITIONAL_BRANCH: