                (when (:rezzed c)
                  (when-let [events (:events (card-def c))]
                    (unregister-events state side c)
-                   (register-events state side events c))))))
+                   (register-events state side events c)))
+               (doseq [h (:hosted c)]
+                 (when-let [events (:events (card-def h))]
+                   (unregister-events state side h)
+                   (register-events state side events h))))))
          (trigger-event state side :card-moved card moved-card)
          moved-card)))))
 

                                                   (steal c))} nil)
                (when (or (not (:steal-req cdef)) ((:steal-req cdef) state :runner c nil))
                  (steal state :runner c))))
            (prompt! state :runner c (str "You accessed but cannot steal " (:title c)) ["OK"] {})))
        (trigger-event state side :access c)))))

(defn max-access [state side n]
  (swap! state assoc-in [:run :max-access] n))

                 slot (conj (server->zone state server) (if (= (:type c) "ICE") :ices :content))
                 dest-zone (get-in @state (cons :corp slot))
                 install-cost (if (and (= (:type c) "ICE") (not no-install-cost))
                                (count dest-zone) 0)
                 install-state (or install-state (:install-state cdef))]
             (when (and (not (and (has? c :subtype "Region")
                                  (some #(has? % :subtype "Region") dest-zone)))
                        (pay state side card extra-cost :credit install-cost))
