anchor.diff:  			(channel-free channel))))
   
   (defmethod execute ((ssh ssh-connection) (command string))
  -	(let ((new-channel 
  -				 (repeat-and-wait-until-complete ((socket ssh))
  -					 (channel-open (session ssh)))))
  -		(if (pointerp new-channel)
  -				(if (not (null-pointer-p new-channel))
  -						(let ((retval
  -									 (repeat-and-wait-until-complete ((socket ssh))
  -										 (channel-exec new-channel command))))
  -							(if (eq retval :ERROR-NONE)
  -									(make-instance 'ssh-channel-stream
  -																 :socket  (socket ssh)
  -																 :channel new-channel)
  -									(throw-last-error (session ssh))))
  -						(throw-last-error (session ssh)))
  -				(throw-last-error (session ssh)))))
  -	
  -(defmacro with-execute ((stdio-stream ssh-connection command) &body body)
  +	(with-slots (socket session) ssh
  +		(let ((new-channel 
  +					 (repeat-and-wait-until-complete 
  +							 (socket)
  +						 (channel-open session))))
  +			(if (pointerp new-channel)
  +					(if (not (null-pointer-p new-channel))
  +							(let ((retval
  +										 (repeat-and-wait-until-complete 
  +												 (socket)
  +											 (channel-exec new-channel command))))
  +								(if (eq retval :ERROR-NONE)
  +										(make-instance 'ssh-channel-stream
  +																	 :socket  socket
  +																	 :channel new-channel))
  +								(throw-last-error session)))
  +					(throw-last-error session))
  +			(throw-last-error session))))
  +
  +(defmacro with-execute ((stdio-stream ssh-connection command)
  +												&body body)
   	`(let ((,stdio-stream (execute ,ssh-connection ,command)))
   		 (unwind-protect
   					(let ((body-retval
  
positive.code: 								:size (mem-aref len :long 0)
  								:type (mem-aref type :int 0)))))
  
  (defbitfield +known-hosts-flags+ 
  	(.type-plain. 1)
  	(.type-sha1.  2)
  
negative.code: 	(request :string) (request-length :unsigned-int)
  	(message :string) (message-length :unsigned-int))
  
  (defcfun ("libssh2_channel_setenv_ex" --channel-setenv-ex) +ERROR-CODE+
  	(channel +channel+) 
  	(varname :string) (varname-len :int)
  	(value :string) (value-len :int))
  
  (defun channel-setenv (channel name value)
  	(with-foreign-strings ((fs-name  name)
  												 (fs-value value))
  		(--channel-setenv-ex channel 
  												 fs-name  (length name)
  												 fs-value (length value))))
  
  (defun channel-process-start (channel request message)
  	(with-foreign-strings ((fs-request request)
  												 (fs-message message))
  