 
         const number:Number = Number(value);
 
+        if (isNaN(number))
+        {
+            if (g11nWorkingInstance)
+            {
+                // Have g11nFormatter.lastOperationStatus property hold
+                // ILLEGAL_ARGUMENT_ERROR value.
+                (g11nWorkingInstance as
+                    flash.globalization.CurrencyFormatter).fractionalDigits
+                                                                        = -1;
+            }
+            else
+            {
+                fallbackLastOperationStatus
+                                = LastOperationStatus.ILLEGAL_ARGUMENT_ERROR;
+            }
+            return errorText;
+        }
+
         if (g11nWorkingInstance)
-            return g11nWorkingInstance.format(number, useCurrencySymbol);
+        {
+            const g11nFormatter:flash.globalization.CurrencyFormatter =
+                (g11nWorkingInstance as flash.globalization.CurrencyFormatter);
+
+            const retVal:String = g11nFormatter.format(
+                                                    number, useCurrencySymbol);
+
+            return errorText && LastOperationStatus.isFatalError(
+                        g11nFormatter.lastOperationStatus) ? errorText : retVal;
+        }
 
         if ((localeStyle === undefined) || (localeStyle === null))
         {
             fallbackLastOperationStatus
                                 = LastOperationStatus.LOCALE_UNDEFINED_ERROR;
-            return undefined;
+            return errorText;
         }
 
         fallbackLastOperationStatus = LastOperationStatus.NO_ERROR;
 
         return (useCurrencySymbol ? currencySymbol : currencyISOCode)
-                                                            + number.toString();
+                                + number.toFixed(properties.fractionalDigits);
     }
 
     [Bindable("change")]

        fallbackLastOperationStatus = LastOperationStatus.NO_ERROR;

        // TODO Implement some kind of simple parsing.
        return new CurrencyParseResult();
    }

    /**

     *  defined in the table below.
     *  </p>
     *
     *  <p>The table below summarizes the possible formatting patterns
     *  for positive currency amounts.
     *  When a currency amount is formatted with the <code>format()</code>
     *  method:</p>
