private List<Letter> getPossibleSpecialLetters(
			int letterIndex, 
			Map<Letter, Integer> minAmountOfLetters, 
			Map<Letter, Integer> maxAmountOfLetters) {
		List<Letter> possibleSpecialLetters = new ArrayList<Letter>();
		for (Letter specialLetter : minAmountOfLetters.keySet()) {
			possibleSpecialLetters.add(specialLetter);
		}
		for (Letter specialLetter : maxAmountOfLetters.keySet()) {
			possibleSpecialLetters.add(specialLetter);
		}
		List<Letter> forbiddenLettersForPosition = c_wordInformation.getPositionDoesNotContainLetter().get(letterIndex);
		
		List<Letter> allowedLetters = new ArrayList<Letter>();
		for (Letter specialLetter : possibleSpecialLetters) {
			boolean isForbidden = false;
			if (forbiddenLettersForPosition != null &&
					forbiddenLettersForPosition.contains(specialLetter)) {
				isForbidden = true;
			} else if (maxAmountOfLetters.containsKey(specialLetter) && maxAmountOfLetters.get(specialLetter) == 0) {
				isForbidden = true;
			}
			if (!isForbidden) {
				allowedLetters.add(specialLetter);
			}
		}
		return allowedLetters;
	}