         }
 
         if (BitFlagUtil.isSet(uint(textDisplayProperties), 
-                              WIDTH_IN_CHARS_PROPERTY_FLAG))
-        {
-            newTextDisplayProperties.widthInChars = textDisplay.widthInChars;
+                              WIDTH_IN_CHARS_PROPERTY_FLAG) && richEditableText)
+        {
+            newTextDisplayProperties.widthInChars = richEditableText.widthInChars;
         }
             
         // Switch from storing bit mask to storing properties.

                uint(newTextDisplayProperties), EDITABLE_PROPERTY_FLAG, true);
        }

        if (textDisplayProperties.heightInLines !== undefined)
        {
            textDisplay.heightInLines = textDisplayProperties.heightInLines;
            newTextDisplayProperties = BitFlagUtil.update(
                uint(newTextDisplayProperties), 
                HEIGHT_IN_LINES_PROPERTY_FLAG, true);

                uint(newTextDisplayProperties), TEXT_FLOW_PROPERTY_FLAG, true);
        }

        if (textDisplayProperties.widthInChars !== undefined && richEditableText)
        {
            richEditableText.widthInChars = textDisplayProperties.widthInChars;
            newTextDisplayProperties = BitFlagUtil.update(
                uint(newTextDisplayProperties), 
                WIDTH_IN_CHARS_PROPERTY_FLAG, true);
