diff --git a/Script/DeleteThread.py b/Script/DeleteThread.py
index 9bb6214d42510a3ac7f893584b53c8862b5f15cc..98770880e38f4063e4c23f17c535d929aecfe37c 100755
--- a/Script/DeleteThread.py
+++ b/Script/DeleteThread.py
@@ -84,21 +84,34 @@ class DeleteThread(threading.Thread):
     # end def __init__()
 
     def delete(self, deletefile):
-        file = deletefile[0]
-       
-        ##### Delete file soon #####
-        os.remove(file)
-        os.remove(file+copied_ext)
+        
+        filename = deletefile[0]
+        pool = deletefile[1]
+        stagehost = deletefile[3]
+        copyDir = deletefile[2]
+
+        #Remote file name for validity check
+        castorfile = os.path.join(copyDir,
+                                  os.path.basename(filename)) 
+        
+        success = self.checkvalidity(filename, castorfile, stagehost, pool)
+        if not success:
+            self.logger.warning('Remote file validity check failed. Not deleting local file %s' % filename)
+            return
+               
+        ##### Delete file #####
+        os.remove(filename)
+        os.remove(filename+copied_ext)
 
         ##### Update Oracle Metadata Database, if connection is fine #####
         ##### File table: filestate from CLOSED to DELETED #####
         if self.db:
             self.logger.info('Update Metadata database')
             self.dbLock.acquire()
-            self.dbFlag = self.db.Deletion(file)
+            self.dbFlag = self.db.Deletion(filename)
             self.dbLock.release()
         elif self.conf.connection:
-            self.logger.warning('No connection to Metadata database: database will not be updated for file %s' % file)
+            self.logger.warning('No connection to Metadata database: database will not be updated for file %s' % filename)
             # end if,else
             
         ##### Put .data deleted file in the clear queue #####
@@ -218,22 +231,11 @@ class DeleteThread(threading.Thread):
                 continue
             # end if                
 
-            # Remove file name for validity check
-            Castor_file = os.path.join(copyDir,
-                                       os.path.basename(filename)) 
-            
             ##### Check if migration is required ##### 
             if not self.migFlag:
                 self.logger.debug('Migration not required by the deletion policy: delete file ' + filename)
 
-                ### Check sizes and checksum before deletion ###
-
-                success = self.checkvalidity(filename, Castor_file, stagehost, pool)
-                if success:
-                    self.delete(deletefile)
-                else:
-                    self.logger.warning('Remote file validity check failed. Not deleting local file %s' % filename)
-
+                self.delete(deletefile)
                 continue
             # end if 
                     
@@ -254,11 +256,7 @@ class DeleteThread(threading.Thread):
                 self.logger.debug('File migrated: going to delete file '
                                   + filename)
 
-                success = self.checkvalidity(filename, Castor_file, stagehost, pool)
-                if success:
-                    self.delete(deletefile)
-                else:
-                    self.logger.warning('Remote file validity check failed. Not deleting local file %s' % filename)
+                self.delete(deletefile)
 
                 del self.MigDict[filename]
                 #block until room is available in the queue ?????
@@ -314,11 +312,14 @@ class DeleteThread(threading.Thread):
             success &= (dbchecksum.lower() == checksum.lower())
         elif dbchecksum:
             success &= (dbchecksum.lower() == checksum.lower())
+
+            
+        report = 'Validity for %s --> %s (Local size: %d - Remote size: %d - DB size: %d)(Expected checksum: %s - Remote checksum: %s)' % (sfofile, str(success), sfofilesize, castorfilesize, (dbfilesize if dbfilesize else -1),str(dbchecksum),str(checksum))
                 
         if not success:
-            self.logger.warning('Checksum check or size check failed for: %s (Local size: %d - Remote size: %d - DB size: %d)(Expected checksum: %s - Remote checksum: %s)' % (sfofile, sfofilesize, castorfilesize, (dbfilesize if dbfilesize else -1),str(dbchecksum),str(checksum)))
+            self.logger.warning('Validity check failed! %s' % report)
 
-        self.logger.debug('Validity for %s --> %s (Local size: %d - Remote size: %d - DB size: %d)(Expected checksum: %s - Remote checksum: %s)' % (sfofile, str(success), sfofilesize, castorfilesize, (dbfilesize if dbfilesize else -1),str(dbchecksum),str(checksum)))
+        self.logger.debug(report)
                 
         return success