diff --git a/include/class.file.php b/include/class.file.php
index b44f7af4542343ccd55e93c2db199e06ea343278..364e7f14ac570d3cc0c2bb2fa074bb05eef1c29a 100644
--- a/include/class.file.php
+++ b/include/class.file.php
@@ -114,7 +114,13 @@ class AttachmentFile {
     function delete() {
 
         $sql='DELETE FROM '.FILE_TABLE.' WHERE id='.db_input($this->getId()).' LIMIT 1';
-        return (db_query($sql) && db_affected_rows());
+        if(!db_query($sql) || !db_affected_rows())
+            return false;
+
+        //Delete file data.
+        AttachmentChunkedData::deleteOrphans();
+
+        return true;
     }
 
 
@@ -209,8 +215,8 @@ class AttachmentFile {
      * canned-response, or faq point to any more.
      */
     /* static */ function deleteOrphans() {
-        $res=db_query(
-            'DELETE FROM '.FILE_TABLE.' WHERE id NOT IN ('
+        
+        $sql = 'DELETE FROM '.FILE_TABLE.' WHERE id NOT IN ('
                 # DISTINCT implies sort and may not be necessary
                 .'SELECT DISTINCT(file_id) FROM ('
                     .'SELECT file_id FROM '.TICKET_ATTACHMENT_TABLE
@@ -219,9 +225,15 @@ class AttachmentFile {
                     .' UNION ALL '
                     .'SELECT file_id FROM '.FAQ_ATTACHMENT_TABLE
                 .') still_loved'
-            .')');
+            .')';
+
+        db_query($sql);
+        
+        //Delete orphaned chuncked data!
         AttachmentChunkedData::deleteOrphans();
-        return db_affected_rows();
+    
+        return true;
+
     }
 }
 
@@ -263,13 +275,17 @@ class AttachmentChunkedData {
                 return false;
             $offset += strlen($block);
         }
-        return true;
+
+        return $this->_pos;
     }
 
-    function deleteOrpans() {
-        db_query(
-            'DELETE FROM '.FILE_CHUNK_TABLE.' WHERE file_id NOT IN '
-                .'( SELECT id FROM '.FILE_TABLE.') still_loved');
-        return db_affected_rows();
+    function deleteOrphans() {
+            
+        $sql = 'DELETE c.* FROM '.FILE_CHUNK_TABLE.' c '
+             . ' LEFT JOIN '.FILE_TABLE.' f ON(f.id=c.file_id) '
+             . ' WHERE f.id IS NULL';
+        
+        return db_query($sql)?db_affected_rows():0;
     }
 }
+?>