                 textInput.restrict = _restrict;
                 restrictChanged = false;
             }
+            
+            if (typicalItemChanged)
+            {
+                if (typicalItem != null)
+                {
+                    var itemString:String = LabelUtil.itemToLabel(typicalItem, labelField, labelFunction);
+                    textInput.widthInChars = itemString.length;
+                }
+                else
+                {
+                    // Just set it back to the default value
+                    textInput.widthInChars = 10; 
+                }
+                
+                typicalItemChanged = false;
+            }
         }
         
         // Clear the TextInput because we were programmatically set to NO_SELECTION

     */ 
    protected function textInput_changeHandler(event:TextOperationEvent):void
    {  
    
        userTypedIntoText = true;
        
        var operation:FlowOperation = event.operation;

        // changed the value to NO_SELECTION
        if (selectedIndexChanged && selectedIndex == NO_SELECTION)
            textInput.text = "";
    }    
    
    /**
     *  @private 
     */ 
    override mx_internal function updateLabelDisplay(displayItem:* = undefined):void
    {
        super.updateLabelDisplay();
        
        if (textInput)
        {
            if (displayItem == undefined)
                displayItem = selectedItem;
            if (displayItem != null && displayItem != undefined)
            {
                textInput.text = LabelUtil.itemToLabel(displayItem, labelField, labelFunction);
            }
        }
    }
