diff --git a/src/de/dhbwstuttgart/typeinference/unify/model/FiniteClosure.java b/src/de/dhbwstuttgart/typeinference/unify/model/FiniteClosure.java
index 4a331353..1c45680b 100644
--- a/src/de/dhbwstuttgart/typeinference/unify/model/FiniteClosure.java
+++ b/src/de/dhbwstuttgart/typeinference/unify/model/FiniteClosure.java
@@ -122,8 +122,13 @@ public class FiniteClosure implements IFiniteClosure {
 			Set<TypeParams> permResult = new HashSet<>();
 			permuteParams(paramCandidates, 0, permResult, new Type[paramCandidates.size()]);
 	
-			for (TypeParams newParams : permResult) 
-				result3.add(t.setTypeParams(newParams));
+			for (TypeParams newParams : permResult) {
+				Type tPrime = t.setTypeParams(newParams);
+				if(tPrime.equals(t))
+					result3.add(t);
+				else
+					result3.addAll(smaller(tPrime));
+			}
 			
 		}	
 		
diff --git a/test/unify/FiniteClosureTest.java b/test/unify/FiniteClosureTest.java
index d1f99d60..33ba1d0a 100644
--- a/test/unify/FiniteClosureTest.java
+++ b/test/unify/FiniteClosureTest.java
@@ -375,22 +375,22 @@ public class FiniteClosureTest {
 		/*
 		 * Test Case 15:
 		 * 
-		 * MyMap<K> <* HashMap<K, List<K>>
+		 * MyMap<K> <* TreeMap<K, List<K>>
 		 * 
-		 * smaller(NavigableSet<? extends Integer, ? extends ArrayList<? extends Integer>>) = 
-		 * { NavigableSet<? extends Integer, ? extends ArrayList<? extends Integer>>,
-		 *   NavigableSet<? extends Integer, ? extends ArrayList<Integer>>
-		 *   NavigableSet<? extends Integer, ArrayList<? extends Integer>>
-		 *   NavigableSet<? extends Integer, ArrayList<Integer>>
-		 *   TreeSet<? extends Integer, ? extends ArrayList<? extends Integer>>,
-		 *   TreeSet<? extends Integer, ? extends ArrayList<Integer>>
-		 *   TreeSet<? extends Integer, ArrayList<? extends Integer>>
-		 *   TreeSet<? extends Integer, ArrayList<Integer>> }
+		 * smaller(NavigableSet<? extends Integer, ? extends List<? extends Integer>>) = 
+		 * { Permutationen der List,
+		 *   Permutationen der List in TreeSets,
+		 *   MyMap<Integer> und MyMap<? extends Integer>
+		 * }
 		 */
 		
-		Type navSet = tf.getSimpleType("NavigableSet", extInt, tf.getExtendsType(tf.getSimpleType("ArrayList", extInt)));
+		Type navSet = tf.getSimpleType("NavigableMap", extInt, tf.getExtendsType(tf.getSimpleType("List", extInt)));
 		
-		Assert.assertEquals(8, fc.smaller(navSet).size());	
+		actual = fc.smaller(navSet);
+		
+		Assert.assertEquals(82, actual.size());
+		Assert.assertTrue(actual.contains(myMapExtInt));
+		Assert.assertTrue(actual.contains(myMapInt));	
 	}
 	
 	@Test