 		case	white	= 7
 	}
 
-	private var mTerminalInfo:	CNTerminalInfo
-	private var mConsole:		CNFileConsole
-	private var mHandler:		((_ hdl: FileHandle) -> Void)?
-	private var mBuffer:		String
-	private var mLock:		NSLock
+	private var mTerminalInfo:		CNTerminalInfo
+	private var mConsole:			CNFileConsole
+	private var mHandler:			((_ hdl: FileHandle) -> Void)?
+	private var mBuffer:			String
+	private var mOrgForegroundColor:	CNColor
+	private var mOrgBackgroundColor:	CNColor
+	private var mLock:			NSLock
 
 	public var foregroundColor:	CNColor {
 		get		{ return mTerminalInfo.foregroundColor		}

	}

	public func end() {
		let code = CNEscapeCode.selectAltScreen(false)
		mConsole.print(string: code.encode())


	}

	public init(console cons: CNFileConsole, terminalInfo terminfo: CNTerminalInfo) {
		mTerminalInfo		= terminfo
		mConsole		= cons
		mHandler		= nil
		mBuffer			= ""
		mOrgForegroundColor	= terminfo.foregroundColor
		mOrgBackgroundColor	= terminfo.backgroundColor
		mLock			= NSLock()
	}

	public var width:  Int { get { return mTerminalInfo.width	}}
	public var height: Int { get { return mTerminalInfo.height	}}

	public func begin() {
		/* Keep original colors */
		mOrgForegroundColor = mTerminalInfo.foregroundColor
		mOrgBackgroundColor = mTerminalInfo.backgroundColor

		/* Select alternative screen */
		let selalt = CNEscapeCode.selectAltScreen(true)
		mConsole.print(string: selalt.encode())
