diff --git a/dlls/riched20/reader.c b/dlls/riched20/reader.c
index caecb52f8d3c847609bb105c490d26594c322a4f..758e5abc80796a5e1a702c489aebd37167cd8f8d 100644
--- a/dlls/riched20/reader.c
+++ b/dlls/riched20/reader.c
@@ -2556,6 +2556,9 @@ CharAttr(RTF_Info *info)
 static void
 CharSet(RTF_Info *info)
 {
+	if (info->ansiCodePage == CP_UTF8)
+		return;
+ 
         switch (info->rtfMinor)
         {
         case rtfAnsiCharSet:
@@ -2594,10 +2597,10 @@ DocAttr(RTF_Info *info)
         switch (info->rtfMinor)
         {
         case rtfAnsiCodePage:
-                info->ansiCodePage = info->rtfParam;
+                info->codePage = info->ansiCodePage = info->rtfParam;
                 break;
         case rtfUTF8RTF:
-                info->ansiCodePage = CP_UTF8;
+                info->codePage = info->ansiCodePage = CP_UTF8;
                 break;
         }
 }