diff --git a/protected_node.install b/protected_node.install
index c685c5e..bc111d9 100644
--- a/protected_node.install
+++ b/protected_node.install
@@ -118,18 +118,23 @@ function protected_node_update_7101() {
 function protected_node_update_7102() {
   // Get the rids with "view protected content".
   $rids = db_select('role_permission')
-    ->fields('role_permission', array('rid'))
-    ->condition('permission', 'view protected content')
-    ->condition('module', 'protected_node')
-    ->execute()
-    ->fetchCol();
-
-  foreach ($rids as $rid) {
-    // Give "bypass password protection" to roles with "view protected content".
-    user_role_grant_permissions($rid, array('bypass password protection'));
-
-    // Remove "view protected content" from database.
-    user_role_revoke_permissions($rid, array('view protected content'));
+      ->fields('role_permission', array('rid'))
+      ->condition('permission', 'view protected content')
+      ->condition('module', 'protected_node')
+      ->execute()
+      ->fetchCol();
+
+  // Get all permissions in the form of $permission => $module array.
+  $permissions = user_permission_get_modules();
+
+  if (isset($permissions['bypass password protection'])) {
+    foreach ($rids as $rid) {
+      // Give "bypass password protection" to roles with "view protected content".
+      user_role_grant_permissions($rid, array('bypass password protection'));
+
+      // Remove "view protected content" from database.
+      user_role_revoke_permissions($rid, array('view protected content'));
+    }
   }
 }
 
@@ -140,11 +145,11 @@ function protected_node_update_7103() {
   // Permission: access protected content.
   // Get the rids with "access protected content".
   $rids = db_select('role_permission')
-    ->fields('role_permission', array('rid'))
-    ->condition('permission', 'access protected content')
-    ->condition('module', 'protected_node')
-    ->execute()
-    ->fetchCol();
+      ->fields('role_permission', array('rid'))
+      ->condition('permission', 'access protected content')
+      ->condition('module', 'protected_node')
+      ->execute()
+      ->fetchCol();
 
   foreach ($rids as $rid) {
     // Give "access protected node password form" to roles with
@@ -155,14 +160,41 @@ function protected_node_update_7103() {
     user_role_revoke_permissions($rid, array('access protected content'));
   }
 
+  // Get all permissions in the form of $permission => $module array.
+  $permissions = user_permission_get_modules();
+  // This case treats users that were not affected in protected_node_update_7102
+  // because 'bypass password protection' does no more exist in code.
+  if (!isset($permissions['bypass password protection'])) {
+    // Permission: view protected content.
+    // Get the rids with "view protected content".
+    $rids = db_select('role_permission')
+        ->fields('role_permission', array('rid'))
+        ->condition('permission', 'view protected content')
+        ->condition('module', 'protected_node')
+        ->execute()
+        ->fetchCol();
+
+    foreach ($rids as $rid) {
+      // Give "access protected node overview page" to roles with
+      // "view protected content".
+      user_role_grant_permissions($rid, array('access protected node overview page'));
+
+      // Give "edit protected content" to roles with "view protected content".
+      user_role_grant_permissions($rid, array('edit protected content'));
+
+      // Remove "bypass password protection" from database.
+      user_role_revoke_permissions($rid, array('bypass password protection'));
+    }
+  }
+
   // Permission: bypass password protection.
   // Get the rids with "bypass password protection".
   $rids = db_select('role_permission')
-    ->fields('role_permission', array('rid'))
-    ->condition('permission', 'bypass password protection')
-    ->condition('module', 'protected_node')
-    ->execute()
-    ->fetchCol();
+      ->fields('role_permission', array('rid'))
+      ->condition('permission', 'bypass password protection')
+      ->condition('module', 'protected_node')
+      ->execute()
+      ->fetchCol();
 
   foreach ($rids as $rid) {
     // Give "access protected node overview page" to roles with
@@ -182,11 +214,11 @@ function protected_node_update_7103() {
   // Permission: edit any password.
   // Get the rids with "edit any password".
   $rids = db_select('role_permission')
-    ->fields('role_permission', array('rid'))
-    ->condition('permission', 'edit any password')
-    ->condition('module', 'protected_node')
-    ->execute()
-    ->fetchCol();
+      ->fields('role_permission', array('rid'))
+      ->condition('permission', 'edit any password')
+      ->condition('module', 'protected_node')
+      ->execute()
+      ->fetchCol();
 
   foreach ($rids as $rid) {
     // Give "edit any protected node password" to roles with
