diff --git a/block_commenter.module b/block_commenter.module
index 81faa50..92d230f 100644
--- a/block_commenter.module
+++ b/block_commenter.module
@@ -100,35 +100,57 @@ function block_commenter_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
         return;
       }
 
-      global $user;
-      $content_type_data = array();
-      if (!empty($user->uid)) {
-        $content_type_data = variable_get('block_commenter_content_type', array());
-        $is_blocked = block_commenter_is_blocked($user->uid);
-        $content_type = array();
-        //This foreach loop creates an array of blocked content types.
-        foreach ($content_type_data as $name => $value) {
-          if ($value) {
-            $content_type[] = $value;
-          }
-        }
-
-        if (empty($is_blocked) || empty($content_type)) {
-          return;
-        }
-
-        // Check whether current node content_type and current
-        // user is in the list of blocked users.
-
-        if (in_array($node->type, $content_type) && $is_blocked) {
-          // Hidding comment form for blocked user.
-          $node->comment = 0;
-        }
+      if (!block_commenter_is_comment_access($node->type)) {
+        // Hidding comment form for blocked user.
+        $node->comment = 0;
       }
   }
 }
 
 /**
+ * Returns whether user has access to post comment.
+ */
+function block_commenter_is_comment_access($node_type = '') {
+  global $user;
+  $content_type_data = array();
+
+  if (!empty($user->uid)) {
+    $content_type_data = variable_get('block_commenter_content_type', array());
+    $is_blocked = block_commenter_is_blocked($user->uid);
+    $content_type = array();
+    //This foreach loop creates an array of blocked content types.
+    foreach ($content_type_data as $name => $value) {
+      if ($value) {
+        $content_type[] = $value;
+      }
+    }
+
+    if (empty($is_blocked) || empty($content_type)) {
+      return TRUE;
+    }
+
+    // Check whether current node content_type and current
+    // user is in the list of blocked users.
+
+    if (in_array($node_type, $content_type) && $is_blocked) {
+      return FALSE;
+    }
+  }
+  return TRUE;
+}
+
+/**
+ * Implements hook_link_alter().
+ */
+function block_commenter_link_alter(&$links, $node, $comment = NULL) {
+  if ($comment == NULL && !empty($links['comment_add'])) {
+    if (block_commenter_is_comment_access($node->type) == FALSE) {
+      $links['comment_add'] = NULL;
+    }
+  }
+}
+
+/**
  * Function to Implement User Autocomplete in the configuration form().
  */
 function block_commenter_multiple_select_autocomplete($string = '') {
