+2000-05-11 11:08:03  Shenghuo ZHU  <zsh@cs.rochester.edu>
+
+       * mml.el (mml-parse-singlepart-with-multiple-charsets): Set space,
+       newline and paragraph to nil when got a non-ascii character. Test
+       paragraph before newline.
+
 2000-05-10 12:17:58  Shenghuo ZHU  <zsh@cs.rochester.edu>
 
        * qp.el (quoted-printable-encode-region): Bind tab-width to 1. Set
 
                         (and use-ascii 'us-ascii)))
            charset struct space newline paragraph)
        (while (not (eobp))
+         (setq charset (mm-mime-charset (mm-charset-after)))
          (cond
           ;; The charset remains the same.
-          ((or (eq (setq charset (mm-mime-charset (mm-charset-after))) 
-                   'us-ascii)
-               (and use-ascii (not charset))
-               (eq charset current)))
+          ((eq charset 'us-ascii))
+          ((or (and use-ascii (not charset))
+               (eq charset current))
+           (setq space nil
+                 newline nil
+                 paragraph nil))
           ;; The initial charset was ascii.
           ((eq current 'us-ascii)
            (setq current charset
          (cond
           ((memq (following-char) '(?  ?\t))
            (setq space (1+ (point))))
-          ((eq (following-char) ?\n)
-           (setq newline (1+ (point))))
           ((and (eq (following-char) ?\n)
                 (not (bobp))
                 (eq (char-after (1- (point))) ?\n))
-           (setq paragraph (point))))
+           (setq paragraph (point)))
+          ((eq (following-char) ?\n)
+           (setq newline (1+ (point)))))
          (forward-char 1))
        ;; Do the final part.
        (unless (= beg (point))