diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/misc/StringMatcher.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/misc/StringMatcher.java
index 3ce9236..1f0a399 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/misc/StringMatcher.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/misc/StringMatcher.java
@@ -18,7 +18,7 @@
 import java.util.Vector;
 
 /**
- * A string pattern matcher, suppporting "*" and "?" wildcards.
+ * A string pattern matcher, supporting "*" and "?" wildcards.
  */
 public class StringMatcher {
     protected String fPattern;
@@ -410,14 +410,16 @@
     }
 
     /**
-     *
-     * @return boolean
-     * @param text a String to match
-     * @param start int that indicates the starting index of match, inclusive
-     * @param end</code> int that indicates the ending index of match, exclusive
-     * @param p String,  String, a simple regular expression that may contain '?'
-     * @param ignoreCase boolean indicating wether code>p</code> is case sensitive
-     */
+	 *
+	 * @return boolean
+	 * @param text       a String to match
+	 * @param start      int that indicates the starting index of match, inclusive
+	 * @param            end</code> int that indicates the ending index of match,
+	 *                   exclusive
+	 * @param p          String, String, a simple regular expression that may
+	 *                   contain '?'
+	 * @param ignoreCase boolean indicating whether code>p</code> is case sensitive
+	 */
     protected boolean regExpRegionMatches(String text, int tStart, String p,
             int pStart, int plen) {
         while (plen-- > 0) {
@@ -441,8 +443,7 @@
 				}
                 // comparing after converting to upper case doesn't handle all cases;
                 // also compare after converting to lower case
-                if (Character.toLowerCase(tchar) == Character
-                        .toLowerCase(pchar)) {
+				if (Character.toLowerCase(tchar) == Character.toLowerCase(pchar)) {
 					continue;
 				}
             }
