diff --git a/userpoints_nodeaccess.module b/userpoints_nodeaccess.module
index 6a19de1..f67e70b 100644
--- a/userpoints_nodeaccess.module
+++ b/userpoints_nodeaccess.module
@@ -43,7 +43,7 @@ function userpoints_nodeaccess_is_protected($nid) {
 }
 
 function userpoints_nodeaccess_has_access($nid, $uid) {
-  return db_query("SELECT 1 FROM {userpoints_nodeaccess} WHERE nid = :nid AND uid = :uid", array(':nid' => $nid, ':uid' => $uid))->fetchField();
+  return node_load($nid)->uid == $uid || db_query("SELECT 1 FROM {userpoints_nodeaccess} WHERE nid = :nid AND uid = :uid", array(':nid' => $nid, ':uid' => $uid))->fetchField();
 }
 
 /**
@@ -465,3 +465,46 @@ function userpoints_nodeaccess_description_callback($operation, $entity) {
   }
   return t('Gained access to %title.', $arguments);
 }
+
+function userpoints_nodeaccess_entity_delete($entity, $type) {
+  if ($type == 'user' || $type == 'node') {
+    list($id) = entity_extract_ids($type, $entity);
+    db_delete('userpoints_nodeaccess')->condition($type[0] .'id', $id)->execute();
+    if ($type == 'node') {
+      db_delete('userpoints_nodeaccess_points')->condition('nid', $id)->execute();
+    }
+  }
+}
+/**
+ * Implements hook_forms().
+ */
+function userpoints_nodeaccess_forms($form_id, $args) {
+  $forms = array();
+  if (!empty($args) && is_numeric($args[0]) && $form_id == 'userpoints_nodeaccess_trade_access_form_' . $args[0]) {
+    $forms[$form_id]['callback'] = 'userpoints_nodeaccess_trade_access_form';
+  }
+  return $forms;
+}
+
+
+function userpoints_nodeaccess_field_extra_fields() {
+  $extra = array();
+  foreach (node_type_get_types() as $type) {
+    if (variable_get('userpoints_nodeaccess_enabled_' . $type->type, variable_get('userpoints_nodeaccess_enabled', TRUE))) {
+      $map = array(
+        'userpoints_nodeaccess_information' =>  t('Userpoints nodeaccess information'),
+        'userpoints_nodeaccess_form' => t('Userpoints nodeaccess buy form'),
+        'userpoints_nodeaccess_no_access' => t('Userpoints nodeaccess no access'), 
+      );
+      $weight++;
+      foreach ($map as $key => $label) {
+        $extra['node'][$type->type]['display'][$key] = array(
+          'label' => $label,
+          'weight' => $weight++,
+        );
+      }
+    }
+  }
+  return $extra;
+}
+
