Index: StandardFilter.java
===================================================================
RCS file: /home/cvspublic/jakarta-lucene/src/java/org/apache/lucene/analysis/standard/StandardFilter.java,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 StandardFilter.java
--- StandardFilter.java	18 Sep 2001 16:29:51 -0000	1.1.1.1
+++ StandardFilter.java	21 Nov 2002 19:50:55 -0000
@@ -60,6 +60,7 @@
 
 public final class StandardFilter extends TokenFilter
   implements StandardTokenizerConstants  {
+    org.apache.lucene.analysis.Token bufferToken=null;
 
 
   /** Construct filtering <i>in</i>. */
@@ -75,7 +76,14 @@
    * <p>Removes dots from acronyms.
    */
   public final org.apache.lucene.analysis.Token next() throws java.io.IOException {
-    org.apache.lucene.analysis.Token t = input.next();
+    org.apache.lucene.analysis.Token t;
+    if (bufferToken==null) {
+        t = input.next();
+    } else {
+        t=bufferToken;
+        bufferToken=null;
+        return t;
+    }
 
     if (t == null)
       return null;
@@ -83,11 +91,22 @@
     String text = t.termText();
     String type = t.type();
 
-    if (type == APOSTROPHE_TYPE &&		  // remove 's
-	(text.endsWith("'s") || text.endsWith("'S"))) {
-      return new org.apache.lucene.analysis.Token
-	(text.substring(0,text.length()-2),
-	 t.startOffset(), t.endOffset(), type);
+    if (type == APOSTROPHE_TYPE) {
+        if (text.endsWith("'s") || text.endsWith("'S")) {
+            return new org.apache.lucene.analysis.Token
+                (text.substring(0,text.length()-2),
+                 t.startOffset(), t.endOffset(), type);
+        } else if (text.indexOf("'")==1 ) {
+            String s=text.substring(0,1).toLowerCase();
+            if (s.equals("m")||s.equals("t")||s.equals("s")||s.equals("n")||s.equals("l")||s.equals("d")) {
+                bufferToken = new org.apache.lucene.analysis.Token(
+                            text.substring(2,text.length()),
+                            t.startOffset()+2,t.endOffset(),type);
+                return new org.apache.lucene.analysis.Token(s.concat("e"),
+                     t.startOffset(), t.startOffset()+2, type);
+            }
+        }
+        return t;
 
     } else if (type == ACRONYM_TYPE) {		  // remove dots
       StringBuffer trimmed = new StringBuffer();
