     //
     //--------------------------------------------------------------------------
 
+	/**
+	 * Return the short three letter name of a month.
+	 * In most cases it's the first 3 letters.  
+	 * 
+	 * TODO move short names to resource bundles.
+	 */
+	 protected static function shortMonthName(monthName:String, locale:Locale, monthNames:Array):String
+	 {
+		if (locale && locale.language == "fr") {
+			if (monthName == monthNames[5]) {
+				return "JUN";
+			}
+			else if (monthName == monthNames[6]) {
+				return "JUL";	
+			}
+		}
+		
+		return monthName.substr(0,3);
+	 }
+	 
     /**
      *  Parses a String object that contains a date, and returns a Date
      *  object corresponding to the String.

		if (valueString == null || inputFormat == null)
			return null;
		
		var monthNames:Array = ResourceManager.getInstance()
			.getStringArray("SharedResources", "monthNames");
		
		var noMonths:int = monthNames.length;
		for (var i:int = 0; i < noMonths; i++) {
			valueString = valueString.replace(monthNames[i], (i+1).toString());
			valueString = valueString.replace(monthNames[i].substr(0,3), (i+1).toString());
		}
		
		length = valueString.length;

			}
			else if (fullMask == "MMM")
			{
				var locales:Array = ResourceManager.getInstance().localeChain;
				var locale:Locale = new Locale(locales[0]);
				output += shortMonthName(monthNames[value.getMonth()], locale, monthNames);
			}
			else if (fullMask == "MMMM")
			{	
