diff --git a/datetime_extras.module b/datetime_extras.module
index 94c11d9..bda7dc1 100644
--- a/datetime_extras.module
+++ b/datetime_extras.module
@@ -23,10 +23,12 @@ function datetime_extras_help($route_name, RouteMatchInterface $route_match) {
 /**
  * Implements hook_field_widget_info_alter().
  *
- * Remove the daterange_duration widget unless duration_field module is enabled.
+ * Remove the daterange_duration widget unless a sufficiently modern version of
+ * duration_field module is enabled.
  */
 function datetime_extras_field_widget_info_alter(array &$info) {
-  if (!\Drupal::moduleHandler()->moduleExists('duration_field')) {
+  $duration_field_info = \Drupal::service('extension.list.module')->getExtensionInfo('duration_field');
+  if (empty($duration_field_info) || version_compare($duration_field_info['version'], '8.x-2.0-rc2', '<')) {
     unset($info['daterange_duration']);
   }
 }
