public SPIGroup getGroup (int gid) throws SPIException, XmlRpcException {
		try {
			Object[] result;
			
			result = (Object[])this.execute(GETGROUP, addHeader(new Object[] { gid }));
			
			return new SPIGroup(gid, (String)result[0], getIntegerList((Object[])result[1]));
		} catch (XmlRpcException e) {
			switch (e.code) {
			case ERR_GROUP_DOES_NOT_EXIST:
				throw new GroupDoesNotExistException();
			case ERR_GAME_DOES_NOT_EXIST:
				throw new GameDoesNotExistException();
			case ERR_API_KEY_NOT_VALID:
				throw new APIKeyNotValidException();
			case ERR_INVALID_FUNCTION:
				throw new InvalidFunctionException();
			case ERR_UNKNOWN:
				throw new SPIException();
			case ERR_VERSION:
				throw new InvalidVersionException();
			case ERR_INPUT:
				throw new InvalidInputException();
			default:
				throw e;
			}
		}
	}