                                              (format-client channel)
                                              room-name))
              (dispatch-message (format "TOPIC %s" room-name) channel)
-             (dispatch-message (format "NAMES %s" room-name) channel))))
+             (dispatch-message (format "NAMES %s" room-name) channel)
+             (run-hook 'join-hook channel room-name))))
         (raise {:type :client-error
                 :code 461
                 :msg "JOIN :Not enough parameters"}))

    (if (not (empty? recipient))
      (if (not (nil? received-msg))
        (if (room-for-name recipient)
          (send-to-room-except recipient msg channel)
          (if-let [channel (channel-for-nick recipient)]
            (send-to-client* channel msg)
            (raise {:type :client-error
                    :code 401
                    :msg (format "%s :No such nick/channel" recipient)})))

                                        (format-client channel)
                                        room
                                        (or part-message nick)))
             (remove-nick-from-room! nick room)
             (run-hook 'part-hook channel room))
            (raise {:type :client-error
                    :code 442
                    :msg (format "%s :You're not on that channel" room)}))
