--- scribus-1.4.4.mod/scribus/pageitem_textframe.cpp	2014-12-06 02:13:59.599941139 +0900
+++ scribus-1.4.4.mod/scribus/pageitem_textframe.cpp.mod	2014-12-08 22:56:23.540099486 +0900
@@ -822,6 +822,7 @@
 	unsigned int code = ch.unicode();
 	if (	(0x2E80 < code && code < 0x2EFF) ||   // CJK Radicals Supplement
 		(0x3000 < code && code < 0x303F) ||   // CJK Symbols and Punctuation
+		(0x3040 < code && code <= 0x30FF) ||  // Hiragana, Katakana
 		(0x31C0 < code && code < 0x31EF) ||   // CJK Strokes
 		(0x3200 < code && code < 0x32FF) ||   // Enclosed CJK Letters and Months
 		(0x3300 < code && code < 0x33FF) ||   // CJK Compatibility
@@ -846,7 +847,7 @@
 }
  
 static int checkCJKBreakAfter(QChar ch) {
-	unsigned int code[] = {0x201C, 0xFF08, 0xFF3B, 0xFF5B, 0xFF5F, 0xFF62, 0xFF0D, 0};
+	unsigned int code[] = {0x201C, 0x300C, 0xFF08, 0xFF3B, 0xFF5B, 0xFF5F, 0xFF62, 0xFF0D, 0};
 	for (int i = 0; code[i]; ++i)
 		if (code[i] == ch.unicode())
 			return 0;
@@ -855,7 +856,7 @@
 
 static int checkCJKBreakBefore(QChar ch) {
 	unsigned int code[] =
-	 {0x201D, 0x3002, 0xFF01, 0xFF09, 0xFF0C, 0xFF0E, 0xFF1A,
+	 {0x201D, 0x3001, 0x3002, 0x300D, 0xFF01, 0xFF09, 0xFF0C, 0xFF0E, 0xFF1A,
 	  0xFF1B, 0xFF1F, 0xFF3D, 0xFF5D, 0xFF60, 0xFF63, 0xFF64, 0};
 	for (int i = 0; code[i]; ++i)
 		if (code[i] == ch.unicode())
