diff --git a/classified.module b/classified.module
index 5f426b9..e212557 100644
--- a/classified.module
+++ b/classified.module
@@ -1300,42 +1300,16 @@ function classified_node_access($node, $op, $account) {
     ? $node
     : $node->type;
 
-  if ($type != 'classified') {
-    return NODE_ACCESS_IGNORE;
-  }
-
-  // Admin bypasses checks.
-  if (user_access('administer classified ads', $account)) {
-    $ret = TRUE;
+  // Ads admin bypasses checks.
+  if ($type == 'classified' && user_access('administer classified ads', $account)) {
+    $ret = NODE_ACCESS_ALLOW;
   }
+  // Other checks are defined by node.module permissions. Do not override them.
   else {
-    switch ($op) {
-      case 'create':
-        $ret = user_access('create classified content', $account);
-        break;
-
-      case 'update':
-        $ret = user_access('edit any classified content', $account)
-          || (user_access('edit own classified content', $account) && ($account->uid == $node->uid));
-        break;
-
-      case 'delete':
-        $ret = user_access('delete any classified content', $account)
-          || (user_access('delete own classified content', $account) && ($account->uid == $node->uid));
-        break;
-
-      case 'view':
-        $ret = user_access('access content', $account);
-        break;
-
-      default:
-        $ret = FALSE;
-    }
+    $ret = NODE_ACCESS_IGNORE;
   }
 
-  $ret = $ret ? NODE_ACCESS_ALLOW : NODE_ACCESS_IGNORE;
   return $ret;
-  ;
 }
 
 /**
diff --git a/tests/classified_basic.test b/tests/classified_basic.test
index c524e7a..75eddbf 100644
--- a/tests/classified_basic.test
+++ b/tests/classified_basic.test
@@ -61,30 +61,42 @@ class ClassifiedBasicTest extends DrupalWebTestCase {
   protected function createUsers($profiles = array()) {
     if (in_array('admin', $profiles)) {
       $this->adminUser   = $this->drupalCreateUser(array(
-      // block.module, to access admin/build/block
-      'administer blocks',
+        // block.module, to access admin/build/block
+        'administer blocks',
 
-      // classified.module
-      'administer classified ads',
+        // classified.module
+        'administer classified ads',
 
-      // node.module
-      'access content',
+        // node.module
+        'access content',
 
-      // system.module, to access admin/reports/status
-      'administer site configuration',
+        // system.module, to access admin/reports/status
+        'administer site configuration',
 
-      // taxonomy.module
-      'administer taxonomy',
+        // taxonomy.module
+        'administer taxonomy',
 
-      // user.module
-      'access user profiles',
-      ));
+        // user.module
+        'access user profiles',
+        ));
+      $this->pass(t('Admin user %name (%uid) created.', array(
+        '%name' => $this->adminUser->name,
+        '%uid' => $this->adminUser->uid,
+      )), $this->group);
     }
     if (in_array('basic', $profiles)) {
       $this->basicUser   = $this->drupalCreateUser(array('access content'));
+      $this->pass(t('Basic user %name (%uid) created.', array(
+        '%name' => $this->basicUser->name,
+        '%uid' => $this->basicUser->uid,
+      )), $this->group);
     }
     if (in_array('creator', $profiles)) {
-      $this->creatorUser   = $this->drupalCreateUser(array('access content', 'access user profiles'));
+      $this->creatorUser   = $this->drupalCreateUser(array('access content', 'access user profiles', 'view own unpublished content'));
+      $this->pass(t('Creator user %name (%uid) created.', array(
+        '%name' => $this->creatorUser->name,
+        '%uid' => $this->creatorUser->uid,
+      )), $this->group);
     }
   }
 
@@ -349,4 +361,73 @@ class ClassifiedBasicTest extends DrupalWebTestCase {
     $this->drupalGet('classified-test/invalid-term-path');
     $this->assertNoText('Trying to get property of non-object', t('Invalid taxonomy URL did not cause a syntax notice'), $this->group);
   }
+
+  /**
+   * Bug 1432606: Ads can be viewed when not published.
+   */
+  function test1432606() {
+    $this->group = __FUNCTION__;
+    $accounts = array('admin', 'basic', 'creator');
+    $this->createUsers($accounts);
+
+    // 1. Get the Classified vocabulary id and field name.
+    $vid = _classified_get('vid');
+    $category_field_name = _classified_get('field-category');
+
+    // 2a. Create a term in it, do not assign a specific lifetime.
+    $term = (object) array(
+      'name' => $this->randomName(8),
+      'description' => $this->randomString(20),
+      'vid' => $vid,
+    );
+    $status = taxonomy_term_save($term);
+    $tid = $term->tid;
+    $this->assertEqual($status, SAVED_NEW, t('Term @tid created in default vocabulary.', array('@tid' => $tid)), 'setup');
+
+    // 2b. Create a node bearing that term.
+    $this->group = t('new, default');
+    $node = $this->createNode(array(
+      $category_field_name => array(LANGUAGE_NONE => array(0 => array('tid' => $tid))),
+      'uid' => $this->creatorUser->uid,
+      ));
+
+    // 3. The ad is published: all three users and anonymous should be able to see it.
+    $path = 'node/' . $node->nid;
+    $this->drupalLogout();
+    $this->drupalGet($path);
+    $this->assertResponse(200, 'Anonymous user sees published ad.');
+
+    $this->drupalLogin($this->basicUser);
+    $this->drupalGet($path);
+    $this->assertResponse(200, 'Basic user sees published ad.');
+
+    $this->drupalLogin($this->creatorUser);
+    $this->drupalGet($path);
+    $this->assertResponse(200, 'Creator user sees published ad.');
+
+    $this->drupalLogin($this->adminUser);
+    $this->drupalGet($path);
+    $this->assertResponse(200, 'Admin user sees published ad.');
+
+    // 4a. Unpublish the ad.
+    $node->status = 0;
+    node_save($node);
+
+    // 4b. The ad is unpublished: only admin and creator should be able to see it.
+    $this->drupalLogout();
+    $this->drupalGet($path);
+    $this->assertNoResponse(200, 'Anonymous user does not see unpublished ad.');
+
+    $this->drupalLogin($this->basicUser);
+    $this->drupalGet($path);
+    $this->assertNoResponse(200, 'Basic user does not see unpublished ad.');
+
+    $this->drupalLogin($this->creatorUser);
+    $this->drupalGet($path);
+    $this->assertResponse(200, 'Creator user sees his own unpublished ad.');
+
+    $this->drupalLogin($this->adminUser);
+    $this->drupalGet($path);
+    $this->assertResponse(200, 'Admin user sees unpublished ad.');
+  }
 }
