         while (charPosition < line.textBlockBeginIndex + line.rawTextLength)
         {
             var atomIndex:int = line.getAtomIndexAtCharIndex(charPosition);
-            var atomBounds:Rectangle = line.getAtomBounds(atomIndex); 
-            consumedWidth += atomBounds.width;
-            if (consumedWidth > allowedWidth)
-                break;
-                
+            if (extraLine)
+            {
+                // Skip the initial word boundary.
+                if (charPosition != line.textBlockBeginIndex &&
+                    line.getAtomWordBoundaryOnLeft(atomIndex))
+                {
+                    break;
+                }
+            }
+            else
+            {
+                var atomBounds:Rectangle = line.getAtomBounds(atomIndex); 
+                consumedWidth += atomBounds.width;
+                if (consumedWidth > allowedWidth)
+                    break;
+            }
+
             charPosition = line.getAtomTextBlockEndIndex(atomIndex);
         }
         

     *  ג, C, D  
     */
    private function getTruncationPosition(line:TextLine, 
                                           allowedWidth:Number):int
    {           
        var consumedWidth:Number = 0;
        var charPosition:int = line.textBlockBeginIndex;

                    // preceding atom.
                    var oldCharPosition:int = truncateAtCharPosition;
                    truncateAtCharPosition = getNextTruncationPosition(
                        truncLineIndex, truncateAtCharPosition);  
                    // check to see if we've run out of chars
                    if (oldCharPosition == truncateAtCharPosition)
                        break;
