       flagVisibleSet = false
       for modal in $('.modal.' + @classes.MESSAGEINSTANCE)
         modalData = $(modal).data('vtex-message')
-        if modalData.domElement[0] isnt @domElement[0]
+        if (modalData.domElement[0] isnt @domElement[0]) and (modalData.visible is true)
           flagVisibleSet = true
           $(modal).one 'hidden', =>
             $(@domElement).modal('show')
+            @visible = true
 
       if not flagVisibleSet
+        $(@domElement).on 'show', => @visible = true
         $(@domElement).modal('show')
 
     if !@usingModal
       @domElement.show()
+      @visible = true
       # se necessário, cria timer para a mensagem
       if @.timeout? and @.timeout isnt 0
         window.setTimeout =>

      for i in [@messagesArray.length - 1..0] by -1
        currentMessage = @messagesArray[i]
        if (currentMessage.id is message.id)
          currentMessage.domElement.remove()
          @messagesArray.splice(i,1)
      @.changeContainerVisibility()

    ###

      @domElement.modal('hide')
    if !@usingModal
      @domElement.hide()
      @visible = false
    $(window).trigger('removeMessage.vtex', @)

###
