diff --git a/core/lib/Drupal/Component/Datetime/DateTimePlus.php b/core/lib/Drupal/Component/Datetime/DateTimePlus.php
index fb52a80..ecc0ed2 100644
--- a/core/lib/Drupal/Component/Datetime/DateTimePlus.php
+++ b/core/lib/Drupal/Component/Datetime/DateTimePlus.php
@@ -7,7 +7,7 @@
 namespace Drupal\Component\Datetime;
 
 /**
- * Extends DateTime().
+ * Wraps DateTime().
  *
  * This class extends the PHP DateTime class with more flexible initialization
  * parameters, allowing a date to be created from an existing date object,
@@ -15,9 +15,9 @@
  * format, or an array of date parts. It also adds an errors array
  * and a __toString() method to the date object.
  *
- * This class is less lenient than the parent DateTime class. It changes
+ * This class is less lenient than the DateTime class. It changes
  * the default behavior for handling date values like '2011-00-00'.
- * The parent class would convert that value to '2010-11-30' and report
+ * The DateTime class would convert that value to '2010-11-30' and report
  * a warning but not an error. This extension treats that as an error.
  *
  * As with the base class, a date object may be created even if it has
@@ -26,7 +26,7 @@
  * to abort processing. The calling script can decide what to do about
  * errors using hasErrors() and getErrors().
  */
-class DateTimePlus extends \DateTime {
+class DateTimePlus {
 
   const FORMAT   = 'Y-m-d H:i:s';
 
@@ -92,6 +92,11 @@ class DateTimePlus extends \DateTime {
   protected $errors = array();
 
   /**
+   * The DateTime object.
+   */
+  protected $dateTimeObject = NULL;
+
+  /**
    * Creates a date object from an input date object.
    *
    * @param \DateTime $datetime
@@ -251,7 +256,7 @@ public function __construct($time = 'now', $timezone = NULL, $settings = array()
       }
 
       if (empty($this->errors)) {
-        parent::__construct($prepared_time, $prepared_timezone);
+        \DateTime::__construct($prepared_time, $prepared_timezone);
       }
     }
     catch (\Exception $e) {
@@ -266,7 +271,7 @@ public function __construct($time = 'now', $timezone = NULL, $settings = array()
   /**
    * Implements __toString() for dates.
    *
-   * The base DateTime class does not implement this.
+   * The DateTime class does not implement this.
    *
    * @see https://bugs.php.net/bug.php?id=62911
    * @see http://www.serverphorums.com/read.php?7,555645
@@ -277,6 +282,16 @@ public function __toString() {
   }
 
   /**
+   * Passes through all unknown calls onto the DateTime object.
+   */
+  public function __call($method, $args) {
+    if (!isset($this->dateTimeObject)) {
+      $this->dateTimeObject = new \DateTime;
+    }
+    return call_user_func_array(array($this->dateTimeObject, $method), $args);
+  }
+
+  /**
    * Prepares the input time value.
    *
    * Changes the input value before trying to use it, if necessary.
@@ -541,7 +556,7 @@ public function format($format, $settings = array()) {
 
     // Format the date and catch errors.
     try {
-      $value = parent::format($format);
+      $value = \DateTime::format($format);
     }
     catch (\Exception $e) {
       $this->errors[] = $e->getMessage();
