Index: trac/ticket/notification.py
===================================================================
--- trac/ticket/notification.py	(revision 9942)
+++ trac/ticket/notification.py	(working copy)
@@ -139,9 +139,19 @@
                             new = obfuscate_email_address(new)
                         newv = new
                         l = 7 + len(field)
-                        chg = wrap('%s => %s' % (old, new), self.COLS - l, '',
-                                   l * ' ', CRLF)
-                        changes_body += '  * %s:  %s%s' % (field, chg, CRLF)
+                        spacer_old = ' '
+                        spacer_new = ' '
+                        if len(old + new) + l > self.COLS:
+                            l = 5
+                            if len(old) + l > self.COLS:
+                                spacer_old = CRLF
+                            if len(new) + l > self.COLS:
+                                spacer_new = CRLF
+                        chg = '* %s: %s%s%s=>%s%s' % (field, spacer_old, 
+                            old, spacer_old, spacer_new, new)
+                        chg = chg.replace(CRLF, CRLF + l * ' ')
+                        chg = wrap(chg, self.COLS, '', l * ' ', CRLF)
+                        changes_body += ' %s%s' % (chg, CRLF)
                     if newv:
                         change_data[field] = {'oldvalue': old, 'newvalue': new}
         

