Index: modules/hangul/hangul-fc.c
===================================================================
--- modules/hangul/hangul-fc.c	(revision 2123)
+++ modules/hangul/hangul-fc.c	(working copy)
@@ -323,6 +323,14 @@
 	  (*n_glyphs)++;
 	  continue;
 	}
+      else if (IS_S(wc))
+        {
+	  pango_glyph_string_set_size (glyphs, *n_glyphs + 1);
+	  set_glyph (font, glyphs, *n_glyphs, cluster_offset,
+		     PANGO_GET_UNKNOWN_GLYPH (wc));
+	  (*n_glyphs)++;
+	  continue;
+	}
 
       /* This font has no glyphs on the Hangul Jamo area!  Find a
 	 fallback from the Hangul Compatibility Jamo area.  */
@@ -445,7 +453,9 @@
       p = g_utf8_next_char (p);
     }
 
-  if (n_jamos > 0)
+  if (n_jamos == 1 && IS_S (prev))
+    render_basic (font, prev, glyphs, &n_glyphs, start - text);
+  else if (n_jamos > 0)
     render_syllable (font, start, n_jamos, glyphs, &n_glyphs,
 		     start - text);
 }
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 2123)
+++ ChangeLog	(working copy)
@@ -1,3 +1,18 @@
+2007-01-03  Changwoo Ryu  <cwryu@debian.org>
+
+	Bug 388702 - Crash when there's no Hangul glyph in the font.
+	
+	* modules/hangul/hangul-fc.c (render_syllable): Do not try to
+	render unknown syllable glyphs as jamos.
+
+	* modules/hangul/hangul-fc.c (hangul_engine_shape): Check if the
+	remaining string is a syllable.
+
+	Bug 388581 - Every last Hangul syllable is decomposed to jamos.
+
+	* modules/hangul/hangul-fc.c (hangul_engine_shape): Check if the
+	remaining string is a syllable.
+
 2006-12-23  Behdad Esfahbod  <behdad@gnome.org>
 
 	Bug 384543 – FcFontMatch misuse
