  
 -        List<Choice> listChoices;
 +            fieldText = (choice == null) ? text  : choice.strText;
++            fieldText = helper.variables.expand(fieldText, idata);
 +            System.out.print(fieldText);
 +            if (doesInput) System.out.print(" [" + set + "] ");
 +            System.out.println();

             String strFieldText = null;
             String strSet = null;
             String strText = null;
@@ -384,8 +238,8 @@ public class UserInputPanelConsoleHelper extends PanelConsoleHelper implements P
             {
                 strFieldText = description.getAttribute(TEXT);
             }
-            choicesList.add(new Choice(strText, null, strSet));
-            return new Input(strVariableName, strSet, choicesList, TEXT_FIELD, strFieldText, 0);
+            Choice choice = new Choice(strText, null, strSet);
+            return new Text(strVariableName, true, strSet, choice, strFieldText);
 
         }
         else if (COMBO_FIELD.equals(strFieldType) || RADIO_FIELD.equals(strFieldType))
@@ -409,44 +263,342 @@ public class UserInputPanelConsoleHelper extends PanelConsoleHelper implements P
                 choicesList.add(new Choice(choice.getAttribute(TEXT), choice.getAttribute(VALUE),
                         choice.getAttribute(SET)));
             }

     {
         try
         {
@@ -45,13 +48,15 @@ abstract public class PanelConsoleHelper
                 String strIn = br.readLine();
                 if (strIn.equals("1"))
                 {
