Index: /trunk/quest-ui-core/src/main/java/de/ugoe/cs/quest/plugin/jfc/JFCReplayIDCalculator.java
===================================================================
--- /trunk/quest-ui-core/src/main/java/de/ugoe/cs/quest/plugin/jfc/JFCReplayIDCalculator.java	(revision 538)
+++ /trunk/quest-ui-core/src/main/java/de/ugoe/cs/quest/plugin/jfc/JFCReplayIDCalculator.java	(revision 539)
@@ -6,4 +6,6 @@
 import java.util.List;
 import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 import de.ugoe.cs.quest.plugin.jfc.eventcore.JFCEvent;
@@ -135,13 +137,63 @@
 	 * Guitar has a special way to deal with window titles when
 	 * calculating unique widget IDs. This method mimics Guitar's
-	 * behavior (compare compare guitar source code: edu.umd.cs.guitar.
+	 * behavior (compare guitar source code: edu.umd.cs.guitar.
 	 * model.JFCDefaultIDGeneratorSimple).
 	 * @param title
 	 * @return
 	 */
-	
+
 	private String getFuzzyTitle(String title){
-		return ".*FreeMind.*";
-	}
+		final List<String> PATTERNS = 
+				Arrays.asList("Rachota .*",
+						"OmegaT-.*",
+						"Buddi.*",
+						"Open:.*",
+						"JabRef.*",
+						"GanttProject.*",
+						".*Pauker.*",
+						".*FreeMind.*",
+						".* - ArgoUML.*",
+						"Save Project .*");
+
+
+		for (String sPattern : PATTERNS) {
+			if (matchRegex(title, sPattern)) {
+				return sPattern;
+			}
+		}
+
+		return title;
+	}
+
+	/**
+	 * Determine if the input string matches the input regex pattern.
+	 * This method mimics Guitars behavior.
+	 * Attempt to match the pattern 'sPattern' with the string 'sInputString'.
+
+	 * @param sInputString    Input string to match with pattern
+	 * @param sPattern        Regex pattern to match with string
+	 * @return                True if match, false otherwise
+	 */
+	private static boolean
+	matchRegex(String sInputString,
+			String sPattern)
+	{
+		Pattern pattern;
+		Matcher matcher;
+
+		pattern = Pattern.compile(sPattern);
+		matcher = pattern.matcher(sInputString);
+		if (matcher.matches()) {
+			return true;
+		}
+
+		return false;
+	}
+	
+	/**
+	 * Extracts the index from a component string
+	 * @param targetPart String that represents the component
+	 * @return Index of the component
+	 */
 	
 	private Integer getIndex(String targetPart){
@@ -150,5 +202,5 @@
 		if (index.equals("-1"))
 				throw new AssertionError("Index should only be -1 for components" +
-						"that have no parents.");
+						"that have no parent.");
 		
 		return Integer.parseInt(index);
