           @transform next, 0, true
           @preventTransition = true
           @cleanup(@slide.next.$el)
+          @undelegateEvents()
+
           window.clearTimeout @transitionEndTimeout
           @transitionEndTimeout = window.setTimeout (=>
             if @isLinear
               window.history.back()
+              @delegateEvents()
             else
               @show(next.__key)
           ), @ms + 100

    preventTransition: true

    # Remember when we fade in views, so we can fade them out.
    didFadeAndPush: false

    initialize: (options) ->
      for key, val of _.extend({}, @defaults, options)

    # If no `el` is defined in options, create a new element and append to the
    # `#views` element. Create the view, hide it and add it to the stack.
    create: (name, View, options = {}) ->
      key = options.key or name

      unless options.el?
        options.el = $("<div class='view' id='#{@identify(key)}' />")
        @$el.append options.el

      view = new View(options)
      view.__key = key
      view.__head = view.$(@headClass)
      view.__body = view.$(@bodyClass)
      view.$el.hide()
      @views[key] = view

    # Get the view from the dictionary, or create it if it doesn't exist.
    # Decide whether to pop or push the view, and build the stack if its the
