Problemas com Inflater

Olá pessoal …
Bom, voltei trazendo mais problemas …
O meu caso é o seguinte … Um arquivo compactado com a bendita ZLIB.
O arquivo original é um arquivo texto, com 966 kb, e o compactado 151 kb.
Quando vou descompactar, o sacana só esta descompactando 16 kb.
Alguem já passou por isso, e pode me dar uma ajuda ?
Vou postar o código que esta descompactando e anexar o arquivo compactado caso alguem tente descompacta-lo.

Eu agreço muito qualquer ajuda.

Grato.

Ronaldo.

	private static ByteArrayOutputStream descompacta(byte[] b, int start,	int end) throws IOException {
		ByteArrayOutputStream encoded = new ByteArrayOutputStream();
		
		int datalen = 0;
		byte[] temp = new byte[1024];

		try {
			for (int i = start; i <= end; i++) {
				encoded.write(b[i]);
			}
			encoded.flush();
		} catch (IndexOutOfBoundsException e) {
			e.printStackTrace();
			return null;
		} catch (IOException e) {
			e.printStackTrace();
			return null;
		}

		Inflater inflater = new Inflater();
		inflater.setInput(encoded.toByteArray());
		ByteArrayOutputStream decoded = new ByteArrayOutputStream();
		while (!inflater.finished()) {
			try {
				datalen = inflater.inflate(temp);
				decoded.write(temp, 0, datalen);
				decoded.flush();
			} catch (DataFormatException e) {
				return null;
			}
		}
		return decoded;
	}