diff --git a/nodeaccess.module b/nodeaccess.module
index 1b33402..79c8874 100644
--- a/nodeaccess.module
+++ b/nodeaccess.module
@@ -840,38 +840,46 @@ function nodeaccess_node_type_update($info) {
  * @param Object $info
  */
 function nodeaccess_node_type_insert($info) {
-  // New node type, default to whatever is set for access content permission.
-  $role_perms = user_role_permissions(array(1 => 1, 2 => 2));
-  $role_perms[DRUPAL_ANONYMOUS_RID]['access content'] = isset($role_perms[1]['access content']) ?
-                                      intval($role_perms[1]['access content']) : 0;
-  $role_perms[DRUPAL_AUTHENTICATED_RID]['access content'] = isset($role_perms[2]['access content']) ?
-                                      intval($role_perms[2]['access content']) : 0;
-  $grants[] = array(
-    'gid' => DRUPAL_ANONYMOUS_RID,
-    'realm' => 'nodeaccess_rid',
-    'grant_view' => $role_perms[DRUPAL_ANONYMOUS_RID]['access content'],
-    'grant_update' => 0,
-    'grant_delete' => 0,
-  );
-  $grants[] = array(
-    'gid' => DRUPAL_AUTHENTICATED_RID,
-    'realm' => 'nodeaccess_rid',
-    'grant_view' => $role_perms[DRUPAL_AUTHENTICATED_RID]['access content'],
-    'grant_update' => 0,
-    'grant_delete' => 0,
-  );
-  variable_set('nodeaccess_' . $info->type, $grants);
-
-  // Add permissions for author.
+  $default_prefs = variable_get('nodeaccess_' . $info->type, array());
   $author_prefs = variable_get('nodeaccess_authors', array());
-  $author_prefs[$info->type] = array(
-    'grant_view' => 0,
-    'grant_update' => 0,
-    'grant_delete' => 0,
-  );
 
-  variable_set('nodeaccess_authors', $author_prefs);
-  node_access_needs_rebuild(TRUE);
+  // New node type, default to whatever is set for access content permission, when permissions are not exist.
+  if (empty($default_prefs)) {
+    $role_perms = user_role_permissions(array(1 => 1, 2 => 2));
+    $role_perms[DRUPAL_ANONYMOUS_RID]['access content'] = isset($role_perms[1]['access content']) ?
+      intval($role_perms[1]['access content']) : 0;
+    $role_perms[DRUPAL_AUTHENTICATED_RID]['access content'] = isset($role_perms[2]['access content']) ?
+      intval($role_perms[2]['access content']) : 0;
+    $grants[] = array(
+      'gid' => DRUPAL_ANONYMOUS_RID,
+      'realm' => 'nodeaccess_rid',
+      'grant_view' => $role_perms[DRUPAL_ANONYMOUS_RID]['access content'],
+      'grant_update' => 0,
+      'grant_delete' => 0,
+    );
+    $grants[] = array(
+      'gid' => DRUPAL_AUTHENTICATED_RID,
+      'realm' => 'nodeaccess_rid',
+      'grant_view' => $role_perms[DRUPAL_AUTHENTICATED_RID]['access content'],
+      'grant_update' => 0,
+      'grant_delete' => 0,
+    );
+    variable_set('nodeaccess_' . $info->type, $grants);
+    node_access_needs_rebuild(TRUE);
+  }
+
+  // Add all permissions for author, when permissions are not exist.
+  if (empty($author_prefs[$info->type])) {
+    $author_prefs = variable_get('nodeaccess_authors', array());
+    $author_prefs[$info->type] = array(
+      'grant_view' => 0,
+      'grant_update' => 0,
+      'grant_delete' => 0,
+    );
+
+    variable_set('nodeaccess_authors', $author_prefs);
+    node_access_needs_rebuild(TRUE);
+  }
 }
 
 
