--- glib-2.8.1/configure.in.old	2005-09-12 19:02:16.000000000 +0430
+++ glib-2.8.1/configure.in	2005-09-21 20:40:13.000000000 +0430
@@ -431,6 +431,46 @@
 ALL_LINGUAS="am ar az be bg bn bs ca cs cy da de el en_CA en_GB eo es et eu fa fi fr ga gl gu he hi hr hu id is it ja ko lt lv mk mn ms nb ne nl nn no or pa pl pt pt_BR ro ru rw sk sl sq sr sr@ije sr@Latn sv ta te th tl tr uk vi wa xh yi zh_CN zh_TW"
 GLIB_GNU_GETTEXT
 
+dnl
+dnl checking whether msgfmt supports localized digits
+dnl
+
+AC_MSG_CHECKING([if msgfmt supports local digits])
+cat >>configfa.po <<\_POEOF
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: \n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"MIME-Version: \n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#, c-format
+msgid "hello %d\n"
+msgstr "salam %Id\n"
+_POEOF
+
+msgfmt_has_local_digits=no
+if $MSGFMT -c configfa.po -o /dev/null 2>/dev/null; then
+  msgfmt_has_local_digits=yes
+fi
+
+AC_MSG_RESULT([$msgfmt_has_local_digits])
+rm -f configfa.po 
+
+dnl Removing the Persian (fa) translation if msgfmt
+dnl does not support the 'I' flag.
+dnl Currently only Persian uses %I flag for local digits; 
+dnl add more languages here if they used the flag.
+
+if test "x$msgfmt_has_local_digits" = "xno"; then
+  ALL_LINGUAS=`echo $ALL_LINGUAS|sed -e 's/fa//g'`
+fi
+
 if test "$gt_cv_have_gettext" != "yes" ; then
   AC_MSG_ERROR([
 *** You must have either have gettext support in your C library, or use the 
