diff -uNr pango_origin/pango/pango-types.h pango_modify/pango/pango-types.h
--- pango_origin/pango/pango-types.h	2006-04-30 11:38:02.000000000 +0800
+++ pango_modify/pango/pango-types.h	2006-06-19 15:43:47.000000000 +0800
@@ -188,6 +188,8 @@
 
 GType          pango_language_get_type    (void);
 PangoLanguage *pango_language_from_string (const char *language);
+PangoLanguage *pango_get_default_language (void);
+
 #define pango_language_to_string(language) ((const char *)language)
 
 gboolean      pango_language_matches  (PangoLanguage *language,
diff -uNr pango_origin/pango/pango-utils.c pango_modify/pango/pango-utils.c
--- pango_origin/pango/pango-utils.c	2006-06-05 09:34:25.000000000 +0800
+++ pango_modify/pango/pango-utils.c	2006-06-19 15:43:47.000000000 +0800
@@ -24,6 +24,7 @@
 #include <math.h>
 #include <string.h>
 #include <stdlib.h>
+#include <locale.h>
 
 #include "pango-font.h"
 #include "pango-impl-utils.h"
@@ -1217,6 +1218,44 @@
   return our_type;
 }
 
+static gchar *
+_pango_get_lc_ctype (void)
+{
+#ifdef G_OS_WIN32
+  gchar *p;
+
+  p = getenv ("LC_ALL");
+  if (p != NULL)
+    return g_strdup (p);
+
+  p = getenv ("LC_CTYPE");
+  if (p != NULL)
+    return g_strdup (p);
+
+  p = getenv ("LANG");
+  if (p != NULL)
+    return g_strdup (p);
+
+  return g_win32_getlocale ();
+#else
+  return g_strdup (setlocale (LC_CTYPE, NULL));
+#endif
+}
+
+PangoLanguage *
+pango_get_default_language (void)
+{
+  gchar *lang;
+  PangoLanguage *result;  
+  
+  lang = _pango_get_lc_ctype ();
+ 
+  result = pango_language_from_string (lang);
+  g_free (lang);
+  
+  return result;
+}
+
 /**
  * pango_language_from_string:
  * @language: a string representing a language tag
