private final boolean pushEntity() throws IOException {
		boolean whitespace = true;
		int pos;
		String code;
		String result;

		read(); // &
		pos = mTextPos;
		while (!mEOF && mPeek0 != ';') {
			push(read());
		}

		code = pop(pos);
		read();
		if (code.length() > 0 && code.charAt(0) == '#') {
			int c = code.charAt(1) == 'x' ? Integer.parseInt(code.substring(2), 16) : Integer.parseInt(code.substring(1));

			push(c);
			return c <= ' ';
		}

		result = mEntityMap.get(code);
		if (result == null) {
			result = "&" + code + ";"; //$NON-NLS-1$ //$NON-NLS-2$
		}

		for (int i = 0; i < result.length(); i++) {
			char c = result.charAt(i);

			if (c > ' ') {
				whitespace = false;
			}
			push(c);
		}
		return whitespace;
	}