       return
   }
 
-
 #Invoked automatically by ember when the view is destroyed, giving us a chance to perform cleanups
   willDestroyElement: () ->
-    Em.$('body').removeClass('modal-open')
-    @removeHandlers()
-    @_backdrop.remove() if @_backdrop
+    @_super(arguments...)
+    @becameHidden()
     return
 
   removeHandlers: ->
 #Remove key press
     jQuery(window.document).unbind('keyup', @_keyUpHandler)
+    @_keyUpHandler = null
     return
 
   setupBinders: ->
 #Key press
+    if @_keyUpHandler
+      return
     handler = (event) =>
       @keyPressed(event)
       return

    return

  close: (event) ->
    @attrs.onClose?()
    @get('modalManager').close()
    return

  actions: {

  fade: true
  action: null
  allowClose: true
  animation: false
  isVis: Ember.computed('isVisible', 'animation', {
    get: () ->
      if not @get('animation')
        return @get('isVisible')
      meta = Ember.meta(this);
      cache = meta.readableCache();
      return cache[key] || false
    set: (key, val) ->
      return val
  })
  isVisible: Ember.computed({
    get: () -> return true
    set: (key, val, cache) ->
      if val == undefined
        val = true
      if val == cache
        return val
      if val
