--- nodereferrer.module	2007-04-25 23:37:42.000000000 -0400
+++ nodereferrer-fixes.module	2007-04-25 23:36:59.000000000 -0400
@@ -116,7 +116,7 @@ function nodereferrer_field($op, &$node,
       // clear any modules referring to me as my title or other data may change. 
       // and nodereference doesn't clear the cache yet.
       foreach (nodereferrer_referrers($node->nid, $fields, $types) as $delta => $item) {
-        $cid = 'content:'. $item->nid .':'. $item->vid;
+        $cid = 'content:'. $item['nid'] .':'. $item['vid'];
         cache_clear_all($cid, 'cache_page');
       }
       return;
@@ -145,10 +145,10 @@ function nodereferrer_field_formatter_in
 function nodereferrer_field_formatter($field, $item, $formatter, $node) {
   switch ($formatter) {
     case 'plain':
-      return strip_tags($item->title);
+      return strip_tags($item['title']);
     
     default:
-      return l($item->title, 'node/'. $item->nid);
+      return l($item['title'], 'node/'. $item['nid']);
   }
 }
 
@@ -177,9 +177,14 @@ function nodereferrer_widget($op, &$node
 
   switch ($op) {
     case 'form':
+      // fixes issue with pathauto, sends an acceptable array here
       $form[$field['field_name']] = array(
-          '#type' => 'hidden',
-          '#value' => 'nodereferrer',
+        '#tree' => TRUE,
+        '#value' => 'nodereferrer',
+      );
+      $form[$field['field_name']][0]['value'] = array(
+        '#type' => 'hidden',
+        '#title' => t($field['widget']['label']),
       );
       return $form;
   }
@@ -221,9 +227,9 @@ function nodereferrer_referrers($nid,  $
       $query = db_rewrite_sql($query);
       $result = db_query($query, $nid); 
 
-      while ($value = db_fetch_object($result)) {
+      while ($value = db_fetch_array($result)) {
         // avoid duplicate referrers by using nid as key
-        $values[$value->nid] = $value;
+        $values[$value['nid']] = $value;
       }
     }
   }
@@ -258,7 +264,8 @@ function nodereferrer_nodeapi($node, $op
 
       foreach ($nids as $nid) {
         $cid = "content:$nid:";
-        cache_clear_all($cid, TRUE);
+        // define a table to delete from or else this complains
+        cache_clear_all($cid, 'cache_content', TRUE);
       }      
   }
 }
