--- biblio/bibtexParse/PARSEENTRIES.php.orig	2008-11-26 13:43:28.000000000 +0100
+++ biblio/bibtexParse/PARSEENTRIES.php	2008-11-26 13:43:36.000000000 +0100
@@ -625,6 +625,12 @@
         if (!empty($entry['isbn']))   $node_array[$node_id]['biblio_isbn']  = $entry['isbn'];
         if (!empty($entry['url']))   $node_array[$node_id]['biblio_url']  = $entry['url'];
 
+	// Allow other modules to adjust the bibtex entries. Functions must
+	// be named modulename_biblio_bibtex_import.
+	foreach (module_implements('biblio_bibtex_import') as $module) {
+	  $function = $module . '_biblio_bibtex_import';
+	  $function ($entry, $node_array[$node_id]);
+	}
       }
 
    }
--- biblio/biblio.import.export.inc.orig	2008-11-26 13:43:14.000000000 +0100
+++ biblio/biblio.import.export.inc	2008-11-26 13:43:32.000000000 +0100
@@ -413,6 +413,13 @@
         $type = "unpublished";
         break;
     }
+    // Allow other modules to adjust the bibtex entries. Functions must
+    // be named modulename_biblio_bibtex_export.
+    foreach (module_implements('biblio_bibtex_export') as $module) {
+      $function = $module . '_biblio_bibtex_export';
+      // Pass all values that are already set.
+      $function ($pub, $type, $journal, $booktitle, $organization, $series, $school);
+    }
     $bibtex .= '@'. $type .' { ';
     $bibtex .= ($pub->biblio_citekey) ? $pub->biblio_citekey .",\n" : ",\n";
     if (!empty($pub->title))
