 				if parts.length > 1
 					word = parts[1]
 					suggestionsString = line.slice(line.indexOf(":") + 2)
-					suggestions[word] = suggestionsString.split(", ")
+					suggestions[language + ":" + word] = suggestionsString.split(", ")
 			else if line[0] == "#" # No suggestions
 				parts = line.split(" ")
 				if parts.length > 1
 					word = parts[1]
-					suggestions[word] = []
+					suggestions[language + ":" + word] = []
 		return suggestions
 
 	#removeAspellHeader: (output) -> output.slice(1)

					else
						results.push index: i, suggestions: cached
				else
					if suggestions[word]?
						cache.set(key, suggestions[word])
						results.push index: i, suggestions: suggestions[word]
					else
						# a valid word, but uncached
						cache.set(key, true)
			logger.log hits: hits, total: words.length, hitrate: hits/words.length, "cache hit rate"
			callback null, results

	getSuggestions: (output) ->
		lines = output.split("\n")
		suggestions = {}
		for line in lines

		@runAspellOnWords language, words, (error, output) =>
			return callback(error) if error?
			#output = @removeAspellHeader(output)
			suggestions = @getSuggestions(language, output)
			results = []
			hits = 0
			addToCache = {}
			for word, i in words
				key = language + ':' + word
				cached = cache.get(key)
