diff --git a/Lib/test/test_locale.py b/Lib/test/test_locale.py
index 0ff3194..2612c79 100644
--- a/Lib/test/test_locale.py
+++ b/Lib/test/test_locale.py
@@ -105,6 +105,32 @@
     }
 
 
+class FrFRCookedTest(BaseCookedTest):
+    # A cooked "fr_FR" locale with a space character as decimal separator
+    # and a non-ASCII currency symbol.
+
+    cooked_values = {
+        'currency_symbol': '\xe2\x82\xac',
+        'decimal_point': ',',
+        'frac_digits': 2,
+        'grouping': [3, 3, 0],
+        'int_curr_symbol': 'EUR ',
+        'int_frac_digits': 2,
+        'mon_decimal_point': ',',
+        'mon_grouping': [3, 3, 0],
+        'mon_thousands_sep': ' ',
+        'n_cs_precedes': 0,
+        'n_sep_by_space': 1,
+        'n_sign_posn': 1,
+        'negative_sign': '-',
+        'p_cs_precedes': 0,
+        'p_sep_by_space': 1,
+        'p_sign_posn': 1,
+        'positive_sign': '',
+        'thousands_sep': ' '
+    }
+
+
 class BaseFormattingTest(object):
     #
     # Utility functions for formatting tests
@@ -152,6 +178,12 @@
         self._test_format("%+d", 4200, grouping=True, out='+4%s200' % self.sep)
         self._test_format("%+d", -4200, grouping=True, out='-4%s200' % self.sep)
 
+    def test_integer_grouping_and_padding(self):
+        self._test_format("%10d", 4200, grouping=True,
+            out=('4%s200' % self.sep).rjust(10))
+        self._test_format("%-10d", -4200, grouping=True,
+            out=('-4%s200' % self.sep).ljust(10))
+
     def test_simple(self):
         self._test_format("%f", 1024, grouping=0, out='1024.000000')
         self._test_format("%f", 102, grouping=0, out='102.000000')
@@ -223,6 +255,49 @@
         self._test_format("%9.2f", 12345.67, grouping=True, out=' 12345.67')
 
 
+class TestFrFRNumberFormatting(FrFRCookedTest, BaseFormattingTest):
+    # Test number formatting with a cooked "fr_FR" locale.
+
+    def test_decimal_point(self):
+        self._test_format("%.2f", 12345.67, out='12345,67')
+
+    def test_grouping(self):
+        self._test_format("%.2f", 345.67, grouping=True, out='345,67')
+        self._test_format("%.2f", 12345.67, grouping=True, out='12 345,67')
+
+    def test_grouping_and_padding(self):
+        self._test_format("%6.2f", 345.67, grouping=True, out='345,67')
+        self._test_format("%7.2f", 345.67, grouping=True, out=' 345,67')
+        self._test_format("%8.2f", 12345.67, grouping=True, out='12 345,67')
+        self._test_format("%9.2f", 12345.67, grouping=True, out='12 345,67')
+        self._test_format("%10.2f", 12345.67, grouping=True, out=' 12 345,67')
+        self._test_format("%-6.2f", 345.67, grouping=True, out='345,67')
+        self._test_format("%-7.2f", 345.67, grouping=True, out='345,67 ')
+        self._test_format("%-8.2f", 12345.67, grouping=True, out='12 345,67')
+        self._test_format("%-9.2f", 12345.67, grouping=True, out='12 345,67')
+        self._test_format("%-10.2f", 12345.67, grouping=True, out='12 345,67 ')
+
+    def test_integer_grouping(self):
+        self._test_format("%d", 200, grouping=True, out='200')
+        self._test_format("%d", 4200, grouping=True, out='4 200')
+
+    def test_integer_grouping_and_padding(self):
+        self._test_format("%4d", 4200, grouping=True, out='4 200')
+        self._test_format("%5d", 4200, grouping=True, out='4 200')
+        self._test_format("%10d", 4200, grouping=True, out='4 200'.rjust(10))
+        self._test_format("%-4d", 4200, grouping=True, out='4 200')
+        self._test_format("%-5d", 4200, grouping=True, out='4 200')
+        self._test_format("%-10d", 4200, grouping=True, out='4 200'.ljust(10))
+
+    def test_currency(self):
+        euro = u'\u20ac'.encode('utf-8')
+        self._test_currency(50000, "50000,00 " + euro)
+        self._test_currency(50000, "50 000,00 " + euro, grouping=True)
+        # XXX is the trailing space a bug?
+        self._test_currency(50000, "50 000,00 EUR ",
+            grouping=True, international=True)
+
+
 class TestStringMethods(BaseLocalizedTest):
     locale_type = locale.LC_CTYPE
 
@@ -277,7 +352,8 @@
     tests = [
         TestMiscellaneous,
         TestEnUSNumberFormatting,
-        TestCNumberFormatting
+        TestCNumberFormatting,
+        TestFrFRNumberFormatting,
     ]
     # TestSkipped can't be raised inside unittests, handle it manually instead
     try:
