   generating `frame`."
   (:toplevel-fun-name (:fun frame)))
 
-(defn find-topmost-activation [frame fun-name]
+(defn find-most-recent-activation [frame fun-name]
+  (println "find-most-recent-activation:" fun-name)
   (first (filter #(= (:name (:fun %1)) fun-name)
                  (suspended-activations frame))))
 

  (util/in-env? (:body-env fun) var))

(defn local-variable-value [frame fun-name var]
  (let [[fun env] (if (= fun-name (:name (active-function frame)))
                    [(active-function frame) (:env frame)]
                    ((juxt :fun :env)
                     (find-topmost-activation frame fun-name)))
        [env-frame-index slot-index]  (local-variable-index fun var)]
    (if (and env-frame-index slot-index)
      (let [env-frame (nth env env-frame-index)]
        (mem/->clojure (nth env-frame slot-index) (:store frame)))
      nil)))


  (set (keys (apply dissoc (:global-env frame) (keys @global-env)))))

(defn active-function [frame]
  "Return the active function for `frame`, i.e., the top-level
  function whose code is executiong when `frame` is active."
  (:fun frame))

(defn active-function-name [frame]
