diff --git a/TermoPL-user-manual.pdf b/TermoPL-user-manual.pdf
index f35f49e78321237290db8ddfc60d0c1999ee60df..ab9c57ba10c55b4df583158e80642092861c380b 100644
Binary files a/TermoPL-user-manual.pdf and b/TermoPL-user-manual.pdf differ
diff --git a/TermoPL_Mac_OS_X/TermoPL-user-manual.pdf b/TermoPL_Mac_OS_X/TermoPL-user-manual.pdf
index f35f49e78321237290db8ddfc60d0c1999ee60df..ab9c57ba10c55b4df583158e80642092861c380b 100644
Binary files a/TermoPL_Mac_OS_X/TermoPL-user-manual.pdf and b/TermoPL_Mac_OS_X/TermoPL-user-manual.pdf differ
diff --git a/TermoPL_Mac_OS_X/TermoPL.jar b/TermoPL_Mac_OS_X/TermoPL.jar
new file mode 100644
index 0000000000000000000000000000000000000000..1186f8c02b233fbbf20dfcfe0194de3f2fc7d259
Binary files /dev/null and b/TermoPL_Mac_OS_X/TermoPL.jar differ
diff --git a/TermoPL_Ubuntu/TermoPL-user-manual.pdf b/TermoPL_Ubuntu/TermoPL-user-manual.pdf
index f35f49e78321237290db8ddfc60d0c1999ee60df..ab9c57ba10c55b4df583158e80642092861c380b 100644
Binary files a/TermoPL_Ubuntu/TermoPL-user-manual.pdf and b/TermoPL_Ubuntu/TermoPL-user-manual.pdf differ
diff --git a/TermoPL_Ubuntu/TermoPL.jar b/TermoPL_Ubuntu/TermoPL.jar
new file mode 100644
index 0000000000000000000000000000000000000000..1186f8c02b233fbbf20dfcfe0194de3f2fc7d259
Binary files /dev/null and b/TermoPL_Ubuntu/TermoPL.jar differ
diff --git a/TermoPL_Win64/TermoPL-user-manual.pdf b/TermoPL_Win64/TermoPL-user-manual.pdf
index f35f49e78321237290db8ddfc60d0c1999ee60df..ab9c57ba10c55b4df583158e80642092861c380b 100644
Binary files a/TermoPL_Win64/TermoPL-user-manual.pdf and b/TermoPL_Win64/TermoPL-user-manual.pdf differ
diff --git a/TermoPL_Win64/TermoPL.jar b/TermoPL_Win64/TermoPL.jar
new file mode 100644
index 0000000000000000000000000000000000000000..1186f8c02b233fbbf20dfcfe0194de3f2fc7d259
Binary files /dev/null and b/TermoPL_Win64/TermoPL.jar differ
diff --git a/compile.sh b/compile.sh
index 0ab97b0c5509913980925a78def8adf50ef589fa..352ca9ad78b061d4acacda780b14c7403574a4eb 100755
--- a/compile.sh
+++ b/compile.sh
@@ -11,10 +11,10 @@ cd ..
 cp TermoPL.jar ./TermoPL_Mac_OS_X
 cp TermoPL.jar ./TermoPL_Ubuntu
 cp TermoPL.jar ./TermoPL_Win64
-rm TermoPL.jar
 zip -r ./packages/TermoPL_Mac_OS_X.zip TermoPL_Mac_OS_X
 zip -r ./packages/TermoPL_Ubuntu.zip TermoPL_Ubuntu
 zip -r ./packages/TermoPL_Win64.zip TermoPL_Win64
+rm TermoPL.jar
 rm -r termopl
 rm -r pl
 rm -r quitaboutpreferenceshandler
diff --git a/src/termopl/About.java b/src/termopl/About.java
index b2eca0bf4e4e7a22e509466024796f9c1d998d0c..ecc6902ffa96aaa8b8fd57409068b41c8b5b823e 100755
--- a/src/termopl/About.java
+++ b/src/termopl/About.java
@@ -57,7 +57,7 @@ public class About extends JPanel
 		vbox.add(Box.createVerticalStrut(16));
 		hbox = Box.createHorizontalBox();
 		hbox.add(Box.createHorizontalGlue());
-		label = new JLabel("Version 6.0.4");
+		label = new JLabel("Version 6.0.5");
 		label.setFont(new Font(Font.SANS_SERIF, Font.BOLD, 12));
 		hbox.add(label);
 		hbox.add(Box.createHorizontalGlue());
diff --git a/src/termopl/GroupsView.java b/src/termopl/GroupsView.java
index 5329763a4c4657872459331bdb140b7683d58e84..d62c1a2662946f85b60da09d449dd1cac470da3b 100755
--- a/src/termopl/GroupsView.java
+++ b/src/termopl/GroupsView.java
@@ -15,6 +15,8 @@ public class GroupsView extends JPanel
 	private static final int CHILD  = 2;
 	
 	private TermoPLDocument doc;
+	private TermComparator comp;
+	private SimpleComparator simpleComp;
 	private JSplitPane splitPane;
 	private HierarchyPanel hierarchyPanel;
 	private RelatedPanel relatedPanel;
@@ -24,6 +26,8 @@ public class GroupsView extends JPanel
 	public GroupsView(TermoPLDocument document)
 	{
 		doc = document;
+		comp = new TermComparator();
+		simpleComp = new SimpleComparator();
 		setLayout(new BorderLayout());
 		arrangeComponents();
 		
@@ -95,6 +99,12 @@ public class GroupsView extends JPanel
 		else infoPanel.setWarning("Term is not selected.");
 	}
 	
+	public void sort(LinkedList<String> terms, boolean simple)
+	{
+		if (simple) Collections.sort(terms, simpleComp);
+		else Collections.sort(terms, comp);
+	}
+	
 	public void reset()
 	{
 		setData(null);
@@ -163,6 +173,7 @@ public class GroupsView extends JPanel
 			int x, y, dy;
 			
 			add(node);
+			if (parents != null) sort(parents, false);
 			dim = node.getPreferredSize();
 			node.setBounds(16, offsetY, dim.width, dim.height);
 			dy = dim.height;
@@ -250,12 +261,14 @@ public class GroupsView extends JPanel
 				if (maxWidth < x) maxWidth = x;
 			}
 			offsetY = node.getY() + dy + 8;
-			if (children != null) 
+			if (children != null) {
+				sort(children, false);
 				for (String t : children) {
 					TermEx term = (TermEx)doc.getTermMap().get(t);
 					
 					arrangeNodes(node, term);
 				}
+			}
 		}
 		
 		public void calcSize()
@@ -296,12 +309,27 @@ public class GroupsView extends JPanel
 			
 			public void arrangeComponents()
 			{
-				addLabel(term, TermoPL.preferences.boldFont, type);
 				LinkedList<String> equiv = term.getEquivalentTerms();
+				String skipID = null;
+				boolean addType = true;
 				
+				if (type == ROOT) {
+					addLabel(term, TermoPL.preferences.boldFont, type);
+					skipID = term.id;
+					addType = false;
+				}
+				else if (equiv == null) addLabel(term, TermoPL.preferences.boldFont, type);
 				if (equiv != null) {
-					for (String e : equiv) 
-						if (e != term.id) addLabel((TermEx)doc.getTermMap().get(e));
+					sort(equiv, true);
+					for (String e : equiv) {
+						if (e != skipID) {
+							if (addType) {
+								addLabel((TermEx)doc.getTermMap().get(e), TermoPL.preferences.boldFont, type);
+								addType = false;
+							}
+							else addLabel((TermEx)doc.getTermMap().get(e));
+						}
+					}
 				}
 			}
 			
@@ -747,5 +775,54 @@ public class GroupsView extends JPanel
 		}
 		
 	}
+	
+	private class SimpleComparator implements Comparator<String>
+	{
+
+		public int compare(String s1, String s2) 
+		{
+			double v1 = doc.getTermMap().get(s1).cvalue;
+			double v2 = doc.getTermMap().get(s2).cvalue;
+			
+			if (v1 < v2) return 1;
+			if (v1 > v2) return -1;
+			return 0;
+		}
+		
+	}
 
+	private class TermComparator implements Comparator<String>
+	{
+
+		public int compare(String s1, String s2) 
+		{
+			TermEx t1 = (TermEx)doc.getTermMap().get(s1);
+			TermEx t2 = (TermEx)doc.getTermMap().get(s2);
+			double v1, v2;
+			
+			if (t1.getEquivalentTerms() == null) v1 = t1.cvalue;
+			else {
+				v1 = 0.0;
+				for (String s : t1.getEquivalentTerms()) {
+					TermEx t = (TermEx)doc.getTermMap().get(s);
+					
+					if (t.cvalue > v1) v1 = t.cvalue;
+				}
+			}
+			if (t2.getEquivalentTerms() == null) v2 = t2.cvalue;
+			else {
+				v2 = 0.0;
+				for (String s : t2.getEquivalentTerms()) {
+					TermEx t = (TermEx)doc.getTermMap().get(s);
+					
+					if (t.cvalue > v2) v2 = t.cvalue;
+				}
+			}
+			if (v1 < v2) return 1;
+			if (v1 > v2) return -1;
+			return 0;
+		}
+		
+	}
+	
 }
diff --git a/src/termopl/TermEx.java b/src/termopl/TermEx.java
index 304540b76104af15d926fb96415a01f8fb696196..79732befe9db5dadeb2689005bf3f4d5bd3750f0 100755
--- a/src/termopl/TermEx.java
+++ b/src/termopl/TermEx.java
@@ -177,22 +177,36 @@ public class TermEx extends Term
 	
 	public LinkedList<String> collectChildren(HashMap<String, Term> termMap)
 	{
-		if (equivTerms == null) return children;
+		LinkedList<String> allChildren = new LinkedList<String>();
+		
+		if (equivTerms == null) allChildren = children;
 		else {
-			LinkedList<String> allChildren = new LinkedList<String>();
-			
+			allChildren = new LinkedList<String>();
 			for (String e : equivTerms) {
 				TermEx t = (TermEx)termMap.get(e);
 				LinkedList<String> clist = t.getChildren();
 				
 				if (clist != null) {
 					for (String c : clist) {
-						if (!allChildren.contains(c)) allChildren.add(c);
+						TermEx tc = (TermEx)termMap.get(c);
+						
+						if (tc.equivTerms != null) {
+							boolean found = false;
+							
+							for (String ec : tc.equivTerms) {
+								if (allChildren.contains(ec)) {
+									found = true;
+									break;
+								}
+							}
+							if (!found) allChildren.add(c);
+						}
+						else if (!allChildren.contains(c)) allChildren.add(c);
 					}
 				}
 			}
-			return allChildren;
 		}
+		return allChildren;
 	}
 	
 	public LinkedList<Pair<String, LinkedList<WordReplacement>>> collectRelated(HashMap<String, Term> termMap)
diff --git a/src/termopl/WordNet.java b/src/termopl/WordNet.java
index ffa646fa1461279e040f6539fb314c3cec35e572..daec689ae83e545059caa2140d9569649a72a06d 100755
--- a/src/termopl/WordNet.java
+++ b/src/termopl/WordNet.java
@@ -434,7 +434,7 @@ public class WordNet
 			case 141:
 			case 142:
 			case 169:
-			case 244: return "interparadigmatic synonymy";
+			case 244: return "inter-paradigmatic synonymy";
 			default: return "?";
 		}
 	}