anchor.diff:      (assert user-info)
       (or (cl-twit::id user-info)
   	(error "Can't get user id in user-id-for-screen-name"))))
  +
  +(defmacro with-microblog-user (user &body body)
  +  "Log in, execture the body, log out"
  +  (let ((result (gensym)))
  +    `(progn
  +       (cl-twit:with-session ((user-nickname ,user) 
  +			      (user-password ,user) 
  +			      :authenticatep t)
  +	 (debug-msg "With user ~a" ,user)
  +	 (let ((,result (progn ,@body)))
  +	   (debug-msg "Finished with user ~a" ,user) 
  +	   ;; with-session doesn't currently do this, remove if it ever does.
  +	   (cl-twit:logout)
  +	   ,result)))))
   
   
   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  
positive.code: 				(response-for-source-request bot reply)
  				(response-for-reply bot reply))))
  	      (when response
  		(post response)))
  	    (error (err)
  	      (report-error "respond-to-replies ~a - ~a~%" bot err)))))
        ;; If any responses failed, they will be skipped
  
negative.code: 		  :initarg :nickname)
     (user-password :reader user-password
  		  :initarg :password)))
  
  (defun user-id-for-screen-name (name)
    ;; This is ambiguous. It would be better to use screen_name when supported
  