Index: icu/icu-2.2.patch
===================================================================
RCS file: /cvsroot/thaioo/OpenOffice_Test/icu/icu-2.2.patch,v
retrieving revision 1.1.1.1
diff -a -u -r1.1.1.1 icu-2.2.patch
--- icu/icu-2.2.patch	15 Sep 2004 05:34:57 -0000	1.1.1.1
+++ icu/icu-2.2.patch	17 Sep 2004 02:36:07 -0000
@@ -1127,3 +1127,29 @@
           return tempGlyphCount;
       };
   
+diff -ur misc/icu/source/common/dbbi.cpp misc/build/icu/source/common/dbbi.cpp
+--- misc/icu/source/common/dbbi.cpp	2002-08-02 04:31:06.000000000 +0700
++++ misc/build/icu/source/common/dbbi.cpp	2004-01-15 22:15:24.000000000 +0700
+@@ -212,20 +212,19 @@
+     if (cachedBreakPositions == NULL || offset < cachedBreakPositions[0] ||
+             offset >= cachedBreakPositions[numCachedBreakPositions - 1]) {
+         reset();
+-        return RuleBasedBreakIterator::following(offset);
++        int ruleBasedPosition = RuleBasedBreakIterator::following(offset);
++	if (cachedBreakPositions == NULL) return ruleBasedPosition;
+     }
+ 
+     // on the other hand, if "offset" is within the range covered by the
+     // cache, then just search the cache for the first break position
+     // after "offset"
+-    else {
+         positionInCache = 0;
+         while (positionInCache < numCachedBreakPositions
+                && offset >= cachedBreakPositions[positionInCache])
+             ++positionInCache;
+         fText->setIndex(cachedBreakPositions[positionInCache]);
+         return fText->getIndex();
+-    }
+ }
+ 
+ /**
