Index: sandbox/2.5.0-expresso1/expressoMail1_2/js/mail_archiver.js
===================================================================
--- sandbox/2.5.0-expresso1/expressoMail1_2/js/mail_archiver.js	(revision 7408)
+++ sandbox/2.5.0-expresso1/expressoMail1_2/js/mail_archiver.js	(revision 7409)
@@ -170,4 +170,7 @@
     this.session = null;
     this.selectedfolder = null;
+    //Marcosw inicio - criado array para guardar todas mensagens de determinada pasta
+    this.allmessagesbyfolder = new Array();
+    //Marcosw fim
 }
 
@@ -1400,6 +1403,4 @@
 }
 
-
-
 //listMessages operation
 //OLD local_messages.prototype.get_local_range_msgs = function(folder,msg_range_begin,emails_per_page,sort,sort_reverse,search,preview_msg_subject,preview_msg_tip) {
@@ -1492,4 +1493,31 @@
 }
 
+//Marcosw inicio - criado métodos para retornar todos os ids de mensagens por folder
+//List all messages by folder given and set a array with all messages ids
+MailArchiver.prototype.listAllMessagesByFolder = function(folderid){
+    try{
+        var query_messages = '{"query":{"folder":[{"@id":"'+folderid+'"}], "order":[{"@asc":"date"}]}}';
+        ArchiveServices.listMessages(expresso_mail_archive.listAllMessagesByFolderOperationOK, expresso_mail_archive.listAllMessagesByFolderOperationFailure, expresso_mail_archive.session.id, query_messages);
+    }
+    catch (e){
+        expresso_mail_archive.getFaultInfo();
+    }
+}
+
+//listAllMessages callback OK
+MailArchiver.prototype.listAllMessagesByFolderOperationOK = function(returnService){
+    var msglist = new Array();
+    for(var i=0; i< returnService.getReturn().length; i++){
+        msglist.push(returnService.getReturn()[i]._id);
+    }
+    expresso_mail_archive.allmessagesbyfolder = msglist;
+}
+
+//listAllMessages callback Fail
+MailArchiver.prototype.listAllMessagesByFolderOperationFailure = function(ServiceFault){
+    window.alert('listAllmessagesByFolder FALHOU!\n' + ServiceFault.getReturn());
+}
+//Marcosw fim
+
 MailArchiver.prototype.getFolderMessagesNumber = function(){
     var n = 0;
Index: sandbox/2.5.0-expresso1/expressoMail1_2/js/main.js
===================================================================
--- sandbox/2.5.0-expresso1/expressoMail1_2/js/main.js	(revision 7389)
+++ sandbox/2.5.0-expresso1/expressoMail1_2/js/main.js	(revision 7409)
@@ -1523,4 +1523,13 @@
     }	
     //Marcosw fim
+
+    //Marcos Início - É preciso fazer as validações para o correto funcionamento da seleção independente de paginação.
+    $.each(msgs_number.split(","), function(index, value){
+        delete selectedPagingMsgs[value];
+    });
+    totalFolderMsgs = totalFolderMsgs - msgs_number.split(",").length;
+    selectAllFolderMsgs(false);
+    updateSelectedMsgs();
+    //Marcos Fim 
 	
 }
Index: sandbox/2.5.0-expresso1/expressoMail1_2/js/messages_controller.js
===================================================================
--- sandbox/2.5.0-expresso1/expressoMail1_2/js/messages_controller.js	(revision 7373)
+++ sandbox/2.5.0-expresso1/expressoMail1_2/js/messages_controller.js	(revision 7409)
@@ -209,7 +209,9 @@
                                     expresso_mail_archive.folder_destination = 'trash';
                                     expresso_mail_archive.moveMessages(expresso_mail_archive.folder_destination, msgs_number);
-                                    //Marcos Início - É preciso remover a aba da mensagem para que a próxima seja exibida
+
+                                    //Marcos Início - É preciso remover a aba da mensagem para que a próxima seja exibida. 
                                     delete_border(currentTab,'false');
                                     //Marcos Fim
+
                                     expresso_mail_archive.getMessage(previous_msg);
                                 }
@@ -278,16 +280,24 @@
                     if (((preferences.save_deleted_msg == true)) && (folder.replace('messages_','') != expresso_mail_archive.specialfolders.trash)){
                     //Marcosw fim  
-                      expresso_mail_archive.createFolder("","Trash");
-                      expresso_mail_archive.folder_destination = 'trash';
-                      expresso_mail_archive.moveMessages(expresso_mail_archive.folder_destination, msgs_number);
+                        expresso_mail_archive.createFolder("","Trash");
+                        expresso_mail_archive.folder_destination = 'trash';
+                        expresso_mail_archive.moveMessages(expresso_mail_archive.folder_destination, msgs_number);
                     }
                     //user does not want to save messages deleted on trash. purge them imediatly
                     else{
-                      expresso_mail_archive.deleteMessages(msgs_number);
-                    }                                    
+                        expresso_mail_archive.deleteMessages(msgs_number);
+                    }     
                 }
             }
 		}
 
+        //Marcos Início - É preciso fazer as validações para o correto funcionamento da seleção independente de paginação.
+        $.each(msgs_number.split(","), function(index, value){
+            delete selectedPagingMsgs[value];
+        });
+        totalFolderMsgs = totalFolderMsgs - msgs_number.split(",").length;
+        selectAllFolderMsgs(false);
+        updateSelectedMsgs();
+        //Marcos Fim  
 
 
@@ -625,5 +635,6 @@
                     //Marcosw fim
                     //Marcos Início - É preciso remover a aba da mensagem copiada
-                    delete_border(currentTab,'false'); 
+                    if(currentTab != 0)
+                        delete_border(currentTab,'false'); 
                     //Marcos fim
                 }
@@ -658,5 +669,12 @@
         }	
 
-
+        //Marcos Início - É preciso fazer as validações para o correto funcionamento da seleção independente de paginação.
+        $.each(msgs_number.split(","), function(index, value){
+            delete selectedPagingMsgs[value];
+        });
+        totalFolderMsgs = totalFolderMsgs - msgs_number.split(",").length;
+        selectAllFolderMsgs(false);
+        updateSelectedMsgs();
+        //Marcos Fim 
 
 		/*if ((this.is_local_folder(folder)) && (this.is_local_folder(new_folder))) { //Move entre pastas não locais...
Index: sandbox/2.5.0-expresso1/expressoMail1_2/js/draw_api.js
===================================================================
--- sandbox/2.5.0-expresso1/expressoMail1_2/js/draw_api.js	(revision 7404)
+++ sandbox/2.5.0-expresso1/expressoMail1_2/js/draw_api.js	(revision 7409)
@@ -681,4 +681,9 @@
         if (/^local_messages/.test(current_folder)) {
             $(".folders-loading").removeClass("folders-loading"); //remove o icone de loading ao clicar nas pastas locais
+            selectAllFolderMsgs(false);
+            //Marcosw inicio - criado método para retornar todos os ids de mensagens por folder
+            expresso_mail_archive.listAllMessagesByFolder(folder.replace("local_messages_",""));
+            populateSelectedMsgs(expresso_mail_archive.allmessagesbyfolder);
+            //Marcosw fim
         }
         else { //se não, processamento normal da pasta
@@ -2292,5 +2297,6 @@
 	search_box_type = search;
 	if (typeof(clean_selected) == "undefined"){	
-		$.ajax({			
+		
+        $.ajax({			
 			url: "controller.php?" + $.param( {action: "$this.imap_functions.get_range_msgs3", 
 				folder: get_current_folder(),
@@ -2322,4 +2328,5 @@
 			}
 		});
+        
 	}	
 	proxy_mensagens.messages_list(current_folder,1,preferences.max_email_per_page,sort,search,sort_box_reverse,preferences.preview_msg_subject,preferences.preview_msg_tip,handler_draw_box);
