Index: languages/Language.php
===================================================================
--- languages/Language.php	(revision 110730)
+++ languages/Language.php	(working copy)
@@ -2717,6 +2717,11 @@
 	 * @return string
 	 */
 	function parseFormattedNumber( $number ) {
+		$s = $this->dateTransformTable();
+		if ( $s ) {
+			$number = strtr( $number, $s );
+		}
+
 		$s = $this->digitTransformTable();
 		if ( $s ) {
 			$number = strtr( $number, array_flip( $s ) );
@@ -2800,8 +2805,44 @@
 	}
 
 	/**
+	 * Rough and wrong, but close enough for now.
 	 * @return array
 	 */
+	function dateTransformTable() {
+            static $table = null;
+
+            if( $table ) {
+                return $table;
+            }
+
+            $dateNames = array(
+                'sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday',
+                'sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat',
+                'january', 'february', 'march', 'april', 'may_long',
+                'june', 'july', 'august', 'september', 'october', 'november', 'december',
+                'january-gen', 'february-gen', 'march-gen', 'april-gen', 'may-gen',
+                'june-gen', 'july-gen', 'august-gen', 'september-gen',
+                'october-gen', 'november-gen', 'december-gen',
+                'jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jul', 'aug', 'sep', 'oct', 'nov', 'dec',
+            );
+            $table = array();
+            foreach ($dateNames as $d) {
+                $en_d = $d;
+                if( substr( $d, -4 ) === '-gen' ) {
+                    $en_d = substr( $d, strlen( $d ) - 4 );
+                } else if( $d === 'may_long' ) {
+                    $en_d = 'may';
+                }
+
+                $table[ wfMsg( $d ) ] = $en_d;
+            }
+
+            return $table;
+	}
+
+	/**
+	 * @return array
+	 */
 	function separatorTransformTable() {
 		return self::$dataCache->getItem( $this->mCode, 'separatorTransformTable' );
 	}
