diff --git a/document.admin.inc b/document.admin.inc
old mode 100755
new mode 100644
index 063aa2c..eb6dd91
--- a/document.admin.inc
+++ b/document.admin.inc
@@ -2,7 +2,7 @@
 
 require_once (drupal_get_path('module', 'document') . '/document.inc');
 
-function document_settings_form(&$form_state) {
+function document_settings_form() {
   drupal_add_css(drupal_get_path('module', 'document') . '/document.css');
 
   drupal_add_js(drupal_get_path('module', 'document') . '/document.js');
@@ -128,7 +128,7 @@
   file_prepare_directory($full, FILE_CREATE_DIRECTORY | FILE_MODIFY_PERMISSIONS);
 }
 
-function document_moderate_form(&$form_state) {
+function document_moderate_form() {
   drupal_add_css(drupal_get_path('module', 'document') . '/document.css');
 
   drupal_add_js(drupal_get_path('module', 'document') . '/document.js');
diff --git a/document.module b/document.module
index dd74b5a..ae27b18 100644
--- a/document.module
+++ b/document.module
@@ -114,9 +114,7 @@
       'title' => t('Documents'),
       'description' => t('Moderate Documents.'),
       'page callback' => 'drupal_get_form',
-      'page arguments' => array(
-          'document_moderate_form',
-          NULL),
+      'page arguments' => array('document_moderate_form'),
       'access arguments' => array('moderate document'),
       'file' => 'document.admin.inc');
 
@@ -124,9 +122,7 @@
       'title' => t('Documents'),
       'description' => t('Administer Documents module.'),
       'page callback' => 'drupal_get_form',
-      'page arguments' => array(
-          'document_settings_form',
-          NULL),
+      'page arguments' => array('document_settings_form'),
       'access arguments' => array('administer document'),
       'file' => 'document.admin.inc');
 
@@ -406,10 +402,17 @@
  */
 function document_delete($node) {
   //$revisions = node_revision_list($node);
-  $results = db_query('SELECT * FROM {document} WHERE nid = %d', $node->nid);
-  while ($rev = db_fetch_object($results)) {
-    _document_delete_revision($node->nid, $rev->vid);
-  }
+//  $results = db_query('SELECT * FROM {document} WHERE nid = %d', $node->nid);
+//  while ($rev = db_fetch_object($results)) {
+//    _document_delete_revision($node->nid, $rev->vid);
+//  }
+  $query = db_select('document', 'd'); 
+  $query->fields('d', array('vid'))
+    ->condition('d.nid', $node->nid, '=');
+    $result = $query->execute();
+    foreach ($result as $rev){
+      _document_delete_revision($node->nid, $rev->vid);
+    } 
 }
 
 /**
@@ -511,7 +514,7 @@
 //Private Methods
 
 
-function document_block1_form(&$form_state) {
+function document_block1_form() {
   $form = array();
 
   $action = url('document');
@@ -548,7 +551,7 @@
   return ($form);
 }
 
-function document_block2_form(&$form_state) {
+function document_block2_form() {
   $form = array();
 
   $action = url('document');
@@ -590,19 +593,27 @@
   // Notice that we're matching a single revision based on the node's vid.
   //For external url documents, there would be no file.
   $result = db_query('SELECT *
-                        FROM {files} AS f 
-                          INNER JOIN {document} AS d ON f.fid = d.fid
-                        WHERE d.nid = %d
-                                AND d.vid = %d
-                                AND d.fid <> 0
-                                AND d.fid NOT IN (SELECT d2.fid FROM {document} d2 WHERE d2.nid = %d AND d2.vid <> %d)', $nid, $vid, $nid, $vid);
-  if ($doc = db_fetch_object($result)) {
-    $fid = $doc->fid;
-    $path = $doc->filepath;
-    db_query('DELETE FROM {files} WHERE fid = %d', $fid);
-    file_delete($path);
-  }
-  db_query('DELETE FROM {document} WHERE nid = %d AND vid = %d', $nid, $vid);
+                         FROM {file_managed} AS f 
+                            INNER JOIN {document} AS d ON f.fid = d.fid
+                         WHERE d.nid = :nid
+                                 AND d.vid = :vid
+                                  AND d.fid <> 0
+                                 AND d.fid NOT IN (SELECT d2.fid FROM {document} d2 WHERE d2.nid = :nid AND d2.vid <> :vid)', array(':nid' => $nid, ':vid' => $vid));
+    foreach ($result as $doc) {
+      $fid = $doc->fid;
+      $path = $doc->filepath;
+      db_delete('file_managed')
+        ->condition('fid', $fid)
+        ->execute();
+      db_delete('file_usage')
+        ->condition('fid', $fid)
+        ->execute();
+      file_unmanaged_delete($path);
+    }
+    db_delete('document')
+      ->condition('nid', $nid)
+      ->condition('vid', $vid)
+      ->execute();
 }
 
 function _document_is_uploaded() {
@@ -630,7 +641,10 @@
 }
 
 function _document_get_node_terms($node) {
-  $input = $node->document_types[$node->language];
+  if (isset($node->document_types[$node->language]))
+    $input = $node->document_types[$node->language];
+  else
+      $input = $node->document_types['und'];
   $term_ids = array();
   if(count($input) > 0) {
     foreach($input as $term) {
diff --git a/document.search.inc b/document.search.inc
old mode 100755
new mode 100644
index d5860d1..44cd627
--- a/document.search.inc
+++ b/document.search.inc
@@ -2,7 +2,7 @@
 
 require_once (drupal_get_path('module', 'document') . '/document.inc');
 
-function document_search_form(&$form_state) {
+function document_search_form() {
   drupal_add_css(drupal_get_path('module', 'document') . '/document.css');
 
   drupal_add_js(drupal_get_path('module', 'document') . '/document.js');
