Index: read.c
===================================================================
RCS file: /cvs/cvsfiles/devo/gas/read.c,v
retrieving revision 1.234
diff -u -r1.234 read.c
--- read.c	1998/05/27 16:08:03	1.234
+++ read.c	1998/05/29 19:54:53
@@ -3431,6 +3431,8 @@
       x = (struct broken_word *) xmalloc (sizeof (struct broken_word));
       x->next_broken_word = broken_words;
       broken_words = x;
+      x->seg = seg_now;
+      x->subseg = subseg_now;
       x->frag = frag_now;
       x->word_goes_here = p;
       x->dispfrag = 0;
Index: struc-symbol.h
===================================================================
RCS file: /cvs/cvsfiles/devo/gas/struc-symbol.h,v
retrieving revision 1.26
diff -u -r1.26 struc-symbol.h
--- struc-symbol.h	1995/08/08 21:41:18	1.26
+++ struc-symbol.h	1998/05/29 19:54:53
@@ -104,6 +104,9 @@
     /* Linked list -- one of these structures per ".word x-y+C"
        expression.  */
     struct broken_word *next_broken_word;
+    /* Segment and subsegment for broken word.  */
+    segT seg;
+    subsegT subseg;
     /* Which frag is this broken word in?  */
     fragS *frag;
     /* Where in the frag is it?  */
Index: write.c
===================================================================
RCS file: /cvs/cvsfiles/devo/gas/write.c,v
retrieving revision 1.208
diff -u -r1.208 write.c
--- write.c	1998/05/18 23:06:12	1.208
+++ write.c	1998/05/29 19:54:54
@@ -1522,6 +1522,7 @@
 	{
 	  expressionS exp;
 
+	  subseg_change (lie->seg, lie->subseg);
 	  exp.X_op = O_subtract;
 	  exp.X_add_symbol = lie->add;
 	  exp.X_op_symbol = lie->sub;
@@ -1566,6 +1567,7 @@
 	addressT from_addr, to_addr;
 	int n, m;
 
+	subseg_change (lie->seg, lie->subseg);
 	fragP = lie->dispfrag;
 
 	/* Find out how many broken_words go here.  */


