--- NClassifier\summariser\SimpleSummariser.cs
+++ NClassifier\summariser\SimpleSummariser.cs
@@ -121,13 +121,10 @@
 				result.Append(sentence);
 				result.Append(".");
 				// This isn't always correct - perhaps it should be whatever symbol the sentence finished with
-				if (it.MoveNext())
-				{
-					result.Append(" ");
-				}
+				result.Append(" ");
 			}
 
-			return result.ToString();
+			return result.ToString().TrimEnd(' ');
 		}
 
 /**
--- NClassifier\Utilities.cs
+++ NClassifier\Utilities.cs
@@ -180,7 +180,8 @@
 			{
 				System.Collections.IList result = new System.Collections.ArrayList();
 				for (int i = 0; i < input.Length; i++) {
-					result.Add(input[i]);
+					if (!result.Contains(input[i]))
+						result.Add(input[i]);
 				}
 				return (string[])((System.Collections.ArrayList)result).ToArray(typeof(string));
 			}
--- NClassifier\vector\VectorClassifier.cs
+++ NClassifier\vector\VectorClassifier.cs
@@ -99,14 +99,14 @@
 		{
 			int[] result = new int[terms.Length];
 			for (int i = 0; i < terms.Length; i++) {
-				int value = (int)wordFrequencies[terms[i]];
-				if (value == System.Int32.MinValue)
+				object value = wordFrequencies[terms[i]];
+				if (value == null)
 				{
 					result[i] = 0;
 				}
 				else
 				{
-					result[i] = value;
+					result[i] = (int) value;
 				}
 
 			}
