diff --git a/protected_node.settings.inc b/protected_node.settings.inc
index 4090295..732a667 100644
--- a/protected_node.settings.inc
+++ b/protected_node.settings.inc
@@ -142,7 +142,6 @@ function protected_node_node_form_alter(&$form) {
   }
   $form['protected_node'] = array(
     '#type' => 'fieldset',
-    '#description' => t('By selecting the checkbox below you password protect this page. Unless you are using the global password feature, you want to enter a password in this form.'),
     '#title' => t('Password protect this @node', array('@node' => $node_type->name)),
     '#collapsible' => TRUE,
     '#collapsed' => $collapsed,
@@ -172,7 +171,7 @@ function protected_node_node_form_alter(&$form) {
     $form['protected_node']['protected_node_is_protected'] = array(
       '#type' => 'checkbox',
       '#title' => t('This @node is protected', array('@node' => $node_type->name)),
-      '#description' => t('Check here if this content should be protected by a password.'),
+      '#description' => t('By selecting this checkbox you password protect this page. Unless you are using the global password feature, you want to enter a password in this form.'),
       '#default_value' => $protected,
     );
   }
@@ -184,12 +183,23 @@ function protected_node_node_form_alter(&$form) {
     $show_title = variable_get('protected_node_show_node_titles', FALSE);
   }
 
-  $form['protected_node']['protected_node_show_title'] = array(
-    '#type' => 'checkbox',
-    '#title' => t('Show Title'),
-    '#description' => t('Show the title to users when requesting the password.'),
-    '#default_value' => $show_title,
-  );
+  // When custom description text is set there is no use for the Show Title checkbox.
+  $globalText = variable_get('protected_node_description_' . $form['#bundle'], '');
+  $contentTypeText = variable_get('protected_node_description', '');
+  if(empty($globalText) && empty($contentTypeText)) {
+    $form['protected_node']['protected_node_show_title'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Show Title'),
+      '#description' => t('Show the title to users when requesting the password.'),
+      '#default_value' => $show_title,
+    );
+  }
+  else {
+    $form['protected_node']['protected_node_show_title'] = array(
+      '#type' => 'hidden',
+      '#default_value' => $show_title,
+    );
+  }
 
   // Define a password field unless only the global password should be used.
   switch (variable_get('protected_node_use_global_password', PROTECTED_NODE_PER_NODE_PASSWORD)) {
@@ -434,7 +444,7 @@ function protected_node_admin_settings() {
     '#type' => 'checkbox',
     '#title' => t('Show node titles by default'),
     '#default_value' => variable_get('protected_node_show_node_titles', FALSE),
-    '#description' => t('Whether a the node title should be shown (selected) or hidden (unchecked) by default. This flag is used as the default of the Show title checkbox on a create node.'),
+    '#description' => t('Whether a the node title should be shown (selected) or hidden (unchecked) by default. This flag is used as the default of the Show title checkbox on a create node. Note that this setting is overritten by custom password page description text.'),
   );
 
   $form['protected_node_security']['protected_node_allow_hint'] = array(
diff --git a/tests/protected_node.page_text.test b/tests/protected_node.page_text.test
index 1bb0859..fd552c0 100644
--- a/tests/protected_node.page_text.test
+++ b/tests/protected_node.page_text.test
@@ -43,7 +43,7 @@ class ProtectedNodePageDisplay extends ProtectedNodeBaseTestCase {
    */
   public function testDefaultHideTitle() {
     // Create a protected node without showing its title.
-    $node = $this->createProtectedNode(FALSE);
+    $node = $this->createProtectedNode(TRUE, FALSE);
 
     // User sees the default text.
     $this->drupalLogin($this->normalAccessAllowedUser);
@@ -61,7 +61,7 @@ class ProtectedNodePageDisplay extends ProtectedNodeBaseTestCase {
    */
   public function testDefaultShowTitle() {
     // Create a protected node that show its title.
-    $node = $this->createProtectedNode(TRUE);
+    $node = $this->createProtectedNode(TRUE, TRUE);
 
     // User sees the default text including node title.
     $this->drupalLogin($this->normalAccessAllowedUser);
@@ -89,7 +89,7 @@ class ProtectedNodePageDisplay extends ProtectedNodeBaseTestCase {
     );
     $this->drupalPost('admin/config/content/protected_node', $protected_node_settings, t('Save configuration'));
 
-    // $show_title parameter shouldn't matter.
+    // $show_title_option_available is false since there is a custom description set.
     $node = $this->createProtectedNode(FALSE);
 
     // User sees the set global text.
@@ -114,8 +114,8 @@ class ProtectedNodePageDisplay extends ProtectedNodeBaseTestCase {
     );
     $this->drupalPost('admin/structure/types/manage/page', $settings, t('Save content type'));
 
-    // $show_title parameter shouldn't matter.
-    $node = $this->createProtectedNode(TRUE);
+    // $show_title_option_available is false since there is a custom description set.
+    $node = $this->createProtectedNode(FALSE);
 
     // User sees the set global text.
     $this->drupalLogin($this->normalAccessAllowedUser);
@@ -148,7 +148,7 @@ class ProtectedNodePageDisplay extends ProtectedNodeBaseTestCase {
     );
     $this->drupalPost('admin/structure/types/manage/page', $settings, t('Save content type'));
 
-    // $show_title parameter shouldn't matter.
+    // $show_title_option_available is false since there is a custom description set.
     $node = $this->createProtectedNode(FALSE);
 
     // User sees the set content type text.
@@ -160,13 +160,16 @@ class ProtectedNodePageDisplay extends ProtectedNodeBaseTestCase {
   /**
    * Helper method to create a protected node.
    *
-   * @param bool $show_title
-   *   Whether show the node title or not.
+   * @param bool $show_title_option_available.
+   *   TRUE if the show title option can be set in the UI, FALSE if it is hidden.
+   *
+   * @param bool $show_title.
+   *   Whether to show the node title or not. Has no effect if $show_title_option_available is FALSE.
    *
    * @return object.
    *   A node object.
    */
-  public function createProtectedNode($show_title) {
+  public function createProtectedNode($show_title_option_available, $show_title = FALSE) {
     // Log in as Admin.
     $this->drupalLogin($this->adminUser);
     // Generate random password.
@@ -178,8 +181,12 @@ class ProtectedNodePageDisplay extends ProtectedNodeBaseTestCase {
       'protected_node_is_protected' => TRUE,
       'protected_node_passwd[pass1]' => $password,
       'protected_node_passwd[pass2]' => $password,
-      'protected_node_show_title' => $show_title,
     );
+    if($show_title_option_available) {
+      $node_data += array(
+        'protected_node_show_title' => $show_title,
+      );
+    }
     $this->drupalPost('node/add/page', $node_data, t('Save'));
 
     // Once the node created logout the user.
