diff -r1.1 GermanStemmer.java 33c33 < * @param word The term that should be stemmed. --- > * @param term The term that should be stemmed. 82c82 < // Check the 7 "base" suffixes: "e", "s", "n", "t", "em", "er", "nd" for all --- > // Strip the 7 "base" suffixes: "e", "s", "n", "t", "em", "er", "nd" for all 84c84,85 < // possible suffixes. --- > // possible suffixes, stripping only the characters from them they are build > // does mostly the same. 114a116 > sb = resubstitute( sb ); 118d119 < sb = resubstitute( sb ); 131c132 < if ( c < ( sb.length() - 3 ) && buffer.charAt( c ) == 'g' && buffer.charAt ( c + 1 ) == 'e' ) { --- > if ( c < ( buffer.length() - 4 ) && buffer.charAt( c ) == 'g' && buffer.charAt ( c + 1 ) == 'e' ) { 143c144 < * - Substitute an second char of an pair of equal characters with --- > * - Substitute a second char of a pair of equal characters with 166c167 < // Take care that enough characters at left for search. --- > // Take care that at least one character is left side from the current one. 243,244c244,246 < * Undoes some changes made by substitute(). That are character pairs and < * character combinations. --- > * Undoes the changes made by substitute(). That are character pairs and > * character combinations. Umlauts will remain as their corresponding > * vowel, as "ß" remains as "ss". 246c248 < * @return The term without the not human reaqdable substitutions. --- > * @return The term without the not human readable substitutions.