--- share/share.module.orig	2009-06-17 16:38:17.000000000 -0400
+++ share/share.module	2009-06-17 16:44:34.000000000 -0400
@@ -123,11 +123,10 @@ function share_menu() {
 /**
  * Implementation of hook_link().
  */
-function share_link($type, $object, $teaser = FALSE) {
+function share_link($type, $node, $teaser = FALSE) {
   $links = array();
 
   if ($type == 'node' && ($shares = share_get_widgets('link', $node->type))) {
-    $node = $object;
     $settings = array();
     foreach ($shares as $value) {
       $share = share_load($value->share_id, $value->module);
@@ -320,11 +319,10 @@ function share_get_widgets($type = NULL,
   }
 
   if ($node_type) {
-    $sql = "SELECT n.share_id FROM {share_node_types} AS n WHERE n.node_type != NULL AND n.node_type != '%s'";
-    $where_query[] = "s.share_id NOT IN ($sql)";
+    $where_query[] = "(n.node_type IS NULL OR n.node_type = '%s')";
     $vars[] = $node_type;
     $where_query = implode(' AND ', $where_query);
-    $result = db_query("SELECT s.* FROM {share} AS s WHERE $where_query", $vars);
+    $result = db_query("SELECT s.* FROM {share} AS s LEFT JOIN {share_node_types} AS n ON n.share_id = s.share_id WHERE $where_query", $vars);
   }
   else {
     $where_query = implode(' AND ', $where_query);
