こんな処理をする手続きrember* をつくりました。
  (rember* 'b '(a b c (a b c))) => (a c (a c))
これをcall/ccを使った大域脱出させたいです。
  (rember* 'b '(a b c END d (a b c)) => (a c END (a b c))
  
しかし下のコードでは希望する動きをしません。  
  => (rember* 'b (a c END (a c))

下のコードをつかって、うまく脱出する方法はあるでしょうか?

(define rember*
(lambda (a l)
(call/cc (lambda (escape)
(cond ((null? l) '())
((not-pair? (car l))
(cond ((eq? (car l) a)
(rember* a (cdr l)))
((eq? (car l) 'END)(escape (cons 'END '())))
(else (cons (car l) (rember* a (cdr l))))))
(else (cons (rember* a (car l))
(rember* a (cdr l)))))))))