diff --git a/includes/bootstrap.inc b/includes/bootstrap.inc
index 34398c72781a1b4e600a1f9f7a9ef53124eca974..28681452a349baa86a93ff8c9e0462a8678461a8 100644
--- a/includes/bootstrap.inc
+++ b/includes/bootstrap.inc
@@ -599,7 +599,7 @@ function drupal_page_header() {
 
       // Check http headers:
       $modified_since = isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) ? $_SERVER['HTTP_IF_MODIFIED_SINCE'] == $date : NULL;
-      if (!empty($_SERVER['HTTP_IF_MODIFIED_SINCE']) && ($timestamp = strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE'])) != -1) {
+      if (!empty($_SERVER['HTTP_IF_MODIFIED_SINCE']) && ($timestamp = strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE'])) > 0) {
         $modified_since = $cache->created <= $timestamp;
       }
       else {
diff --git a/modules/aggregator.module b/modules/aggregator.module
index 8ac5ca70513b49657f86fe5b3d05aa12b1e9ca85..8c1007ae6c5416e8f23f65c5c45e06f5a1e2893a 100644
--- a/modules/aggregator.module
+++ b/modules/aggregator.module
@@ -484,7 +484,7 @@ function aggregator_parse_w3cdtf($date_str) {
     return $epoch;
   }
   else {
-    return -1;
+    return FALSE;
   }
 }
 
@@ -580,10 +580,10 @@ function aggregator_parse_feed(&$data, $feed) {
     else if ($item['MODIFIED']) $date = $item['MODIFIED'];                 // Atom XML
     else $date = 'now';
 
-    $timestamp = strtotime($date); // strtotime() returns -1 on failure
-    if ($timestamp < 0) {
-      $timestamp = aggregator_parse_w3cdtf($date); // also returns -1 on failure
-      if ($timestamp < 0) {
+    $timestamp = strtotime($date); // As of PHP 5.1.0, strtotime returns FALSE on failure instead of -1.
+    if ($timestamp <= 0) {
+      $timestamp = aggregator_parse_w3cdtf($date); // Returns FALSE on failure
+      if (!$timestamp) {
         $timestamp = time(); // better than nothing
       }
     }
diff --git a/modules/aggregator/aggregator.module b/modules/aggregator/aggregator.module
index 8ac5ca70513b49657f86fe5b3d05aa12b1e9ca85..8c1007ae6c5416e8f23f65c5c45e06f5a1e2893a 100644
--- a/modules/aggregator/aggregator.module
+++ b/modules/aggregator/aggregator.module
@@ -484,7 +484,7 @@ function aggregator_parse_w3cdtf($date_str) {
     return $epoch;
   }
   else {
-    return -1;
+    return FALSE;
   }
 }
 
@@ -580,10 +580,10 @@ function aggregator_parse_feed(&$data, $feed) {
     else if ($item['MODIFIED']) $date = $item['MODIFIED'];                 // Atom XML
     else $date = 'now';
 
-    $timestamp = strtotime($date); // strtotime() returns -1 on failure
-    if ($timestamp < 0) {
-      $timestamp = aggregator_parse_w3cdtf($date); // also returns -1 on failure
-      if ($timestamp < 0) {
+    $timestamp = strtotime($date); // As of PHP 5.1.0, strtotime returns FALSE on failure instead of -1.
+    if ($timestamp <= 0) {
+      $timestamp = aggregator_parse_w3cdtf($date); // Returns FALSE on failure
+      if (!$timestamp) {
         $timestamp = time(); // better than nothing
       }
     }
diff --git a/modules/comment.module b/modules/comment.module
index c4dac7d36dfb41eb7874e6a02dc9c00439673011..b4a5cdbd40bc0399b43e58c5d0b26acd64b3a4c9 100644
--- a/modules/comment.module
+++ b/modules/comment.module
@@ -517,7 +517,8 @@ function comment_validate(&$edit) {
   }
   else {
     $date = isset($edit['date']) ? $edit['date'] : 'now';
-    if (strtotime($date) != -1) {
+    // As of PHP 5.1.0, strtotime returns FALSE upon failure instead of -1.
+    if (strtotime($date) > 0) {
       $edit['timestamp'] = strtotime($date);
     }
     else {
diff --git a/modules/comment/comment.module b/modules/comment/comment.module
index c4dac7d36dfb41eb7874e6a02dc9c00439673011..b4a5cdbd40bc0399b43e58c5d0b26acd64b3a4c9 100644
--- a/modules/comment/comment.module
+++ b/modules/comment/comment.module
@@ -517,7 +517,8 @@ function comment_validate(&$edit) {
   }
   else {
     $date = isset($edit['date']) ? $edit['date'] : 'now';
-    if (strtotime($date) != -1) {
+    // As of PHP 5.1.0, strtotime returns FALSE upon failure instead of -1.
+    if (strtotime($date) > 0) {
       $edit['timestamp'] = strtotime($date);
     }
     else {
diff --git a/modules/node.module b/modules/node.module
index 4da1629f0eebe99ed994a46fc3dd779b4ef9e590..37317c52223044e370734f128a75737659b4328f 100644
--- a/modules/node.module
+++ b/modules/node.module
@@ -1544,8 +1544,8 @@ function node_validate($node) {
       form_set_error('name', t('The username %name does not exist.', array ('%name' => theme('placeholder', $node->name))));
     }
 
-    // Validate the "authored on" field.
-    if (strtotime($node->date) == -1) {
+    // Validate the "authored on" field. As of PHP 5.1.O, strtotime returns FALSE instead of -1 upon failure.
+    if (strtotime($node->date) <= 0) {
       form_set_error('date', t('You have to specify a valid date.'));
     }
   }
diff --git a/modules/node/node.module b/modules/node/node.module
index 4da1629f0eebe99ed994a46fc3dd779b4ef9e590..37317c52223044e370734f128a75737659b4328f 100644
--- a/modules/node/node.module
+++ b/modules/node/node.module
@@ -1544,8 +1544,8 @@ function node_validate($node) {
       form_set_error('name', t('The username %name does not exist.', array ('%name' => theme('placeholder', $node->name))));
     }
 
-    // Validate the "authored on" field.
-    if (strtotime($node->date) == -1) {
+    // Validate the "authored on" field. As of PHP 5.1.O, strtotime returns FALSE instead of -1 upon failure.
+    if (strtotime($node->date) <= 0) {
       form_set_error('date', t('You have to specify a valid date.'));
     }
   }