         // _widthConstraint trumps even explicitWidth as some layouts may choose
         // to specify width different from the explicit.
         var constrainedWidth:Number =
-            !isNaN(_widthConstraint) ? _widthConstraint : explicitWidth;
+            !isNaN(this.estimatedWidth) ? this.estimatedWidth : explicitWidth;
             
         // for measurement, try not to collapse so small we don't measure
         // anything

        // x and/or y may not be 0.        
        var newMeasuredHeight:Number = Math.ceil(bounds.bottom);

        // If the measured height is not affected, then constrained
        // width measurement is not neccessary.
        if (!isNaN(_widthConstraint) && measuredHeight == newMeasuredHeight)
            return;
            
        // Call super.measure() here insted of in the beginning of the method,
        // as it zeroes the measuredWidth, measuredHeight and these values will
        // still be valid if we decided to do an early return above.
        super.measure();

        measuredWidth = Math.ceil(bounds.right);
        measuredHeight = newMeasuredHeight;
        
        // Remember the number of text lines during measure. We can use this to

                "core", "truncationIndicator");
        }
        
        if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_5)
            addEventListener(FlexEvent.UPDATE_COMPLETE, updateCompleteHandler);

        // Register as a weak listener for "change" events from ResourceManager.
        // If TextBases registered as a strong listener,
        // they wouldn't get garbage collected.
