--- /dev/null
+Make PyICU compile against ICU 4.8RC1.
+
+Fixes https://bugzilla.osafoundation.org/show_bug.cgi?id=13022
+
+Based on 'svn diff -c 177 http://svn.osafoundation.org/pyicu/trunk'
+but removed patch for CHANGES file, as that wouldn't apply out of
+order.
+
+Index: format.cpp
+===================================================================
+--- format.cpp (revision 176)
++++ format.cpp (revision 177)
+@@ -31,6 +31,10 @@
+ #include "dateformat.h"
+ #include "numberformat.h"
+
++#if U_ICU_VERSION_HEX >= 0x04080000
++ DECLARE_CONSTANTS_TYPE(UTimeUnitFormatStyle);
++#endif
++
+ /* FieldPosition */
+
+ class t_fieldposition : public _wrapper {
+@@ -728,7 +732,11 @@
+ static int t_timeunitformat_init(t_timeunitformat *self,
+ PyObject *args, PyObject *kwds)
+ {
++#if U_ICU_VERSION_HEX >= 0x04080000
++ UTimeUnitFormatStyle style;
++#else
+ TimeUnitFormat::EStyle style;
++#endif
+ Locale *locale;
+
+ switch (PyTuple_Size(args)) {
+@@ -1659,8 +1667,13 @@
+
+ INSTALL_STATIC_INT(FieldPosition, DONT_CARE);
+
+-#if U_ICU_VERSION_HEX >= 0x04020000
++#if U_ICU_VERSION_HEX >= 0x04020000 && U_ICU_VERSION_HEX < 0x04080000
+ INSTALL_STATIC_INT(TimeUnitFormat, kFull);
+ INSTALL_STATIC_INT(TimeUnitFormat, kAbbreviate);
+ #endif
++#if U_ICU_VERSION_HEX >= 0x04080000
++ INSTALL_CONSTANTS_TYPE(UTimeUnitFormatStyle, m);
++ INSTALL_ENUM(UTimeUnitFormatStyle, "FULL", UTMUTFMT_FULL_STYLE);
++ INSTALL_ENUM(UTimeUnitFormatStyle, "ABBREVIATED", UTMUTFMT_ABBREVIATED_STYLE);
++#endif
+ }
+Index: numberformat.cpp
+===================================================================
+--- numberformat.cpp (revision 176)
++++ numberformat.cpp (revision 177)
+@@ -30,6 +30,10 @@
+ #include "numberformat.h"
+ #include "macros.h"
+
++#if U_ICU_VERSION_HEX >= 0x04080000
++ DECLARE_CONSTANTS_TYPE(UCurrencySpacing);
++#endif
++
+ /* DecimalFormatSymbols */
+
+ class t_decimalformatsymbols : public _wrapper {
+@@ -494,7 +498,11 @@
+
+ static PyObject *t_decimalformatsymbols_getPatternForCurrencySpacing(t_decimalformatsymbols *self, PyObject *args)
+ {
++#if U_ICU_VERSION_HEX >= 0x04080000
++ UCurrencySpacing type;
++#else
+ DecimalFormatSymbols::ECurrencySpacing type;
++#endif
+ UBool beforeCurrency;
+
+ if (!parseArgs(args, "ib", &type, &beforeCurrency))
+@@ -510,7 +518,11 @@
+ static PyObject *t_decimalformatsymbols_setPatternForCurrencySpacing(t_decimalformatsymbols *self, PyObject *args)
+ {
+ UnicodeString *u, _u;
++#if U_ICU_VERSION_HEX >= 0x04080000
++ UCurrencySpacing type;
++#else
+ DecimalFormatSymbols::ECurrencySpacing type;
++#endif
+ UBool beforeCurrency;
+
+ if (!parseArgs(args, "ibS", &type, &beforeCurrency, &u, &_u))
+@@ -2278,12 +2290,18 @@
+ INSTALL_STATIC_INT(DecimalFormatSymbols, kNaNSymbol);
+ INSTALL_STATIC_INT(DecimalFormatSymbols, kSignificantDigitSymbol);
+
+-#if U_ICU_VERSION_HEX >= 0x04020000
++#if U_ICU_VERSION_HEX >= 0x04020000 && U_ICU_VERSION_HEX < 0x04080000
+ INSTALL_STATIC_INT(DecimalFormatSymbols, kCurrencyMatch);
+ INSTALL_STATIC_INT(DecimalFormatSymbols, kSurroundingMatch);
+ INSTALL_STATIC_INT(DecimalFormatSymbols, kInsert);
+ INSTALL_STATIC_INT(DecimalFormatSymbols, kCurrencySpacingCount);
+ #endif
++#if U_ICU_VERSION_HEX >= 0x04080000
++ INSTALL_CONSTANTS_TYPE(UCurrencySpacing, m);
++ INSTALL_ENUM(UCurrencySpacing, "MATCH", UNUM_CURRENCY_MATCH);
++ INSTALL_ENUM(UCurrencySpacing, "SURROUNDING_MATCH", UNUM_CURRENCY_SURROUNDING_MATCH);
++ INSTALL_ENUM(UCurrencySpacing, "INSERT", UNUM_CURRENCY_INSERT);
++#endif
+
+ INSTALL_STATIC_INT(NumberFormat, kIntegerField);
+ INSTALL_STATIC_INT(NumberFormat, kFractionField);