diff --git a/uc_roles/uc_roles.module b/uc_roles/uc_roles.module
index 9934cc1..d9fb27e 100644
--- a/uc_roles/uc_roles.module
+++ b/uc_roles/uc_roles.module
@@ -1373,7 +1373,8 @@ function _uc_roles_product_get_expiration($role_product, $quantity, $time) {
       $end_time = mktime(0, 0, 0, $end_time['month'], $end_time['day'], $end_time['year']);
     }
 
-    return $end_time;
+    // Avoid year 2038 bug.
+    return ($end_time > 2147483647 || $end_time == 0) ? 2147483647 : $end_time;
   }
 }
 
@@ -1400,5 +1401,7 @@ function _uc_roles_get_expiration($duration, $granularity, $start_time = NULL) {
   $start_time = (!is_null($start_time)) ? $start_time : time();
   $operator = ($duration < 0) ? '' : '+';
 
-  return strtotime($operator . $duration .' '. $granularity, $start_time);
+  $end_time = strtotime($operator . $duration .' '. $granularity, $start_time);
+  // Avoid Year 2038 bug.
+  return ($end_time > 2147483647 || $end_time == 0) ? 2147483647 : $end_time;
 }
