diff --git a/sites/all/modules/diff/diff.pages.inc b/sites/all/modules/diff/diff.pages.inc
index 713da05..3578a91 100755
--- a/sites/all/modules/diff/diff.pages.inc
+++ b/sites/all/modules/diff/diff.pages.inc
@@ -253,8 +253,10 @@ function _diff_body_rows($old_node, $new_node) {
 
   $rows = array();
   $any_visible_change = FALSE;
+  $type = node_type_get_type($new_node);
+  $instances = field_info_instances('node', field_extract_bundle('node', $type));
   // @todo quick workaround for PHP >= 5.3.0 date_diff() conflict.
-  $node_diffs = _diff_module_invoke_all($old_node, $new_node);
+  $node_diffs = _diff_module_invoke_all($old_node, $new_node, $type, $instances);
 
   // We start off assuming all form elements are in the correct order.
   $node_diffs['#sorted'] = TRUE;
@@ -320,14 +322,14 @@ function _diff_body_rows($old_node, $new_node) {
  * @link http://drupal.org/node/639320
  * @see module_invoke_all()
  */
-function _diff_module_invoke_all($old_node, $new_node) {
+function _diff_module_invoke_all($old_node, $new_node, $type, $instances) {
   $return = array();
   foreach (module_implements('diff') as $module) {
     if ($module == 'date') {
       continue; // Avoid function name collision with date_diff().
     }
     $function = "{$module}_diff";
-    $result = $function($old_node, $new_node);
+    $result = $function($old_node, $new_node, $type, $instances);
     if (isset($result) && is_array($result)) {
       $return = array_merge_recursive($return, $result);
     }
diff --git a/sites/all/modules/diff/includes/file.inc b/sites/all/modules/diff/includes/file.inc
index 4de9d6b..4a591a7 100644
--- a/sites/all/modules/diff/includes/file.inc
+++ b/sites/all/modules/diff/includes/file.inc
@@ -9,14 +9,12 @@
 /**
  * Implements hook_diff() for file.module
  */
-function file_diff($old_node, $new_node) {
+function file_diff($old_node, $new_node, $type, $instances) {
 
   $result = array();
-  $type = node_type_get_type($new_node);
 
   // @TODO: abstract this to work with all field types and/or split this
   // integration out to be more generic.
-  $instances = field_info_instances('node', field_extract_bundle('node', $type));
   foreach ($instances as $instance) {
     if (in_array($instance['display']['default']['module'], array('file', 'image'))) {
       $field_name = $instance['field_name'];
diff --git a/sites/all/modules/diff/includes/node.inc b/sites/all/modules/diff/includes/node.inc
index 5b1d74a..9aa7c61 100755
--- a/sites/all/modules/diff/includes/node.inc
+++ b/sites/all/modules/diff/includes/node.inc
@@ -9,10 +9,9 @@
 /**
  * Implements hook_diff() for node.module (body and title).
  */
-function node_diff($old_node, $new_node) {
+function node_diff($old_node, $new_node, $type, $instances) {
 
   $result = array();
-  $type = node_type_get_type($new_node);
   $result['title'] = array(
     '#name' => $type->title_label,
     '#old' => array($old_node->title),
@@ -25,7 +24,6 @@ function node_diff($old_node, $new_node) {
 
   // @TODO: abstract this to work with all field types and/or split this
   // integration out to be more generic.
-  $instances = field_info_instances('node', field_extract_bundle('node', $type));
   foreach ($instances as $instance) {
     $field_name = $instance['field_name'];
     $langcode = field_language('node', $new_node, $field_name);
diff --git a/sites/all/modules/diff/includes/taxonomy.inc b/sites/all/modules/diff/includes/taxonomy.inc
index 335aeab..cf4c825 100644
--- a/sites/all/modules/diff/includes/taxonomy.inc
+++ b/sites/all/modules/diff/includes/taxonomy.inc
@@ -9,14 +9,12 @@
 /**
  * Implements hook_diff() for taxonomy.module
  */
-function taxonomy_diff($old_node, $new_node) {
+function taxonomy_diff($old_node, $new_node, $type, $instances) {
 
   $result = array();
-  $type = node_type_get_type($new_node);
 
   // @TODO: abstract this to work with all field types and/or split this
   // integration out to be more generic.
-  $instances = field_info_instances('node', field_extract_bundle('node', $type));
   foreach ($instances as $instance) {
     if ($instance['display']['default']['module'] == 'taxonomy') {
       $field_name = $instance['field_name'];
