private void processSecondaryOrders(RdpPacket_Localised data, Options option)
			throws OrderException, RdesktopException {
		int length = 0;
		int type = 0;
		int flags = 0;
		int next_order = 0;

		length = data.getLittleEndian16();
		flags = data.getLittleEndian16();
		type = data.get8();

		next_order = data.getPosition() + length + 7;

		switch (type) {

		case RDP_ORDER_RAW_BMPCACHE:
			//logger.debug("Raw BitmapCache Order");
			this.processRawBitmapCache(data, option);
			break;

		case RDP_ORDER_COLCACHE:
			//logger.debug("Colorcache Order");
			this.processColorCache(data);
			break;

		case RDP_ORDER_BMPCACHE:
			//logger.debug("Bitmapcache Order");
			this.processBitmapCache(data, option);
			break;

		case RDP_ORDER_FONTCACHE:
			//logger.debug("Fontcache Order");
			this.processFontCache(data);
			break;

		case RDP_ORDER_RAW_BMPCACHE2:
			try {
				this.process_bmpcache2(data, flags, false, option);
			} catch (IOException e) {
				throw new RdesktopException(e.getMessage());
			} /* uncompressed */
			break;

		case RDP_ORDER_BMPCACHE2:
			try {
				this.process_bmpcache2(data, flags, true, option);
			} catch (IOException e) {
				throw new RdesktopException(e.getMessage());
			} /* compressed */
			break;

		default:
			//logger.warn("Unimplemented 2ry Order type " + type);
		}

		data.setPosition(next_order);
	}