diff --git a/core/2273385-2.patch b/core/2273385-2.patch
new file mode 100644
index 0000000..d75ddec
--- /dev/null
+++ b/core/2273385-2.patch
@@ -0,0 +1,99 @@
+diff --git a/core/modules/user/src/TempStore.php b/core/modules/user/src/TempStore.php
+index 3096444..48aee67 100644
+--- a/core/modules/user/src/TempStore.php
++++ b/core/modules/user/src/TempStore.php
+@@ -65,11 +65,8 @@ class TempStore {
+    * By default, data is stored for one week (604800 seconds) before expiring.
+    *
+    * @var int
+-   *
+-   * @todo Currently, this property is not exposed anywhere, and so the only
+-   *   way to override it is by extending the class.
+    */
+-  protected $expire = 604800;
++  protected $expire;
+
+   /**
+    * Constructs a new object for accessing data from a key/value store.
+@@ -83,10 +80,11 @@ class TempStore {
+    * @param mixed $owner
+    *   The owner key to store along with the data (e.g. a user or session ID).
+    */
+-  public function __construct(KeyValueStoreExpirableInterface $storage, LockBackendInterface $lockBackend, $owner) {
++  public function __construct(KeyValueStoreExpirableInterface $storage, LockBackendInterface $lockBackend, $owner, $expire) {
+     $this->storage = $storage;
+     $this->lockBackend = $lockBackend;
+     $this->owner = $owner;
++    $this->expire = $expire;
+   }
+
+   /**
+diff --git a/core/modules/user/src/TempStoreFactory.php b/core/modules/user/src/TempStoreFactory.php
+index c93cb58..f1da221 100644
+--- a/core/modules/user/src/TempStoreFactory.php
++++ b/core/modules/user/src/TempStoreFactory.php
+@@ -39,6 +39,13 @@ class TempStoreFactory {
+   protected $lockBackend;
+
+   /**
++   * The time to live for items in seconds.
++   *
++   * @var int
++   */
++  protected $expire;
++
++  /**
+    * Constructs a Drupal\user\TempStoreFactory object.
+    *
+    * @param \Drupal\Component\Serialization\SerializationInterface $serializer
+@@ -47,11 +54,14 @@ class TempStoreFactory {
+    *   The connection object used for this data.
+    * @param \Drupal\Core\Lock\LockBackendInterface $lockBackend
+    *   The lock object used for this data.
++   * @param int $expire
++   *   The
+    */
+-  function __construct(SerializationInterface $serializer, Connection $connection, LockBackendInterface $lockBackend) {
++  function __construct(SerializationInterface $serializer, Connection $connection, LockBackendInterface $lockBackend, $expire = 604800) {
+     $this->serializer = $serializer;
+     $this->connection = $connection;
+     $this->lockBackend = $lockBackend;
++    $this->expire = $expire;
+   }
+
+   /**
+@@ -77,7 +87,7 @@ function get($collection, $owner = NULL) {
+
+     // Store the data for this collection in the database.
+     $storage = new DatabaseStorageExpirable($collection, $this->serializer, $this->connection);
+-    return new TempStore($storage, $this->lockBackend, $owner);
++    return new TempStore($storage, $this->lockBackend, $owner, $this->expire);
+   }
+
+ }
+diff --git a/core/modules/user/tests/src/TempStoreTest.php b/core/modules/user/tests/src/TempStoreTest.php
+index af54c81..5889669 100644
+--- a/core/modules/user/tests/src/TempStoreTest.php
++++ b/core/modules/user/tests/src/TempStoreTest.php
+@@ -82,7 +82,7 @@ protected function setUp() {
+     $this->keyValue = $this->getMock('Drupal\Core\KeyValueStore\KeyValueStoreExpirableInterface');
+     $this->lock = $this->getMock('Drupal\Core\Lock\LockBackendInterface');
+
+-    $this->tempStore = new TempStore($this->keyValue, $this->lock, $this->owner);
++    $this->tempStore = new TempStore($this->keyValue, $this->lock, $this->owner, 604800);
+
+     $this->ownObject = (object) array(
+       'data' => 'test_data',
+diff --git a/core/modules/user/user.services.yml b/core/modules/user/user.services.yml
+index 1e8f9b3..c1c30cd 100644
+--- a/core/modules/user/user.services.yml
++++ b/core/modules/user/user.services.yml
+@@ -53,4 +53,7 @@ services:
+     arguments: ['@entity.manager', '@password']
+   user.tempstore:
+     class: Drupal\user\TempStoreFactory
+-    arguments: ['@serialization.phpserialize', '@database', '@lock']
++    arguments: ['@serialization.phpserialize', '@database', '@lock', '%user.tempstore.expire%']
++
++parameters:
++  user.tempstore.expire: 604800
diff --git a/core/modules/user/src/TempStore.php b/core/modules/user/src/TempStore.php
index 3096444..da87691 100644
--- a/core/modules/user/src/TempStore.php
+++ b/core/modules/user/src/TempStore.php
@@ -65,11 +65,8 @@ class TempStore {
    * By default, data is stored for one week (604800 seconds) before expiring.
    *
    * @var int
-   *
-   * @todo Currently, this property is not exposed anywhere, and so the only
-   *   way to override it is by extending the class.
    */
-  protected $expire = 604800;
+  protected $expire;
 
   /**
    * Constructs a new object for accessing data from a key/value store.
@@ -82,11 +79,14 @@ class TempStore {
    *   The lock object used for this data.
    * @param mixed $owner
    *   The owner key to store along with the data (e.g. a user or session ID).
+   * @param int $expire
+   *   The time to live for items, in seconds.
    */
-  public function __construct(KeyValueStoreExpirableInterface $storage, LockBackendInterface $lockBackend, $owner) {
+  public function __construct(KeyValueStoreExpirableInterface $storage, LockBackendInterface $lockBackend, $owner, $expire = 604800) {
     $this->storage = $storage;
     $this->lockBackend = $lockBackend;
     $this->owner = $owner;
+    $this->expire = $expire;
   }
 
   /**
diff --git a/core/modules/user/src/TempStoreFactory.php b/core/modules/user/src/TempStoreFactory.php
index c93cb58..70a9289 100644
--- a/core/modules/user/src/TempStoreFactory.php
+++ b/core/modules/user/src/TempStoreFactory.php
@@ -39,6 +39,13 @@ class TempStoreFactory {
   protected $lockBackend;
 
   /**
+   * The time to live for items in seconds.
+   *
+   * @var int
+   */
+  protected $expire;
+
+  /**
    * Constructs a Drupal\user\TempStoreFactory object.
    *
    * @param \Drupal\Component\Serialization\SerializationInterface $serializer
@@ -47,11 +54,14 @@ class TempStoreFactory {
    *   The connection object used for this data.
    * @param \Drupal\Core\Lock\LockBackendInterface $lockBackend
    *   The lock object used for this data.
+   * @param int $expire
+   *   The time to live for items, in seconds.
    */
-  function __construct(SerializationInterface $serializer, Connection $connection, LockBackendInterface $lockBackend) {
+  function __construct(SerializationInterface $serializer, Connection $connection, LockBackendInterface $lockBackend, $expire = 604800) {
     $this->serializer = $serializer;
     $this->connection = $connection;
     $this->lockBackend = $lockBackend;
+    $this->expire = $expire;
   }
 
   /**
@@ -77,7 +87,7 @@ function get($collection, $owner = NULL) {
 
     // Store the data for this collection in the database.
     $storage = new DatabaseStorageExpirable($collection, $this->serializer, $this->connection);
-    return new TempStore($storage, $this->lockBackend, $owner);
+    return new TempStore($storage, $this->lockBackend, $owner, $this->expire);
   }
 
 }
diff --git a/core/modules/user/tests/src/TempStoreTest.php b/core/modules/user/tests/src/TempStoreTest.php
index af54c81..5889669 100644
--- a/core/modules/user/tests/src/TempStoreTest.php
+++ b/core/modules/user/tests/src/TempStoreTest.php
@@ -82,7 +82,7 @@ protected function setUp() {
     $this->keyValue = $this->getMock('Drupal\Core\KeyValueStore\KeyValueStoreExpirableInterface');
     $this->lock = $this->getMock('Drupal\Core\Lock\LockBackendInterface');
 
-    $this->tempStore = new TempStore($this->keyValue, $this->lock, $this->owner);
+    $this->tempStore = new TempStore($this->keyValue, $this->lock, $this->owner, 604800);
 
     $this->ownObject = (object) array(
       'data' => 'test_data',
diff --git a/core/modules/user/user.services.yml b/core/modules/user/user.services.yml
index 1e8f9b3..c1c30cd 100644
--- a/core/modules/user/user.services.yml
+++ b/core/modules/user/user.services.yml
@@ -53,4 +53,7 @@ services:
     arguments: ['@entity.manager', '@password']
   user.tempstore:
     class: Drupal\user\TempStoreFactory
-    arguments: ['@serialization.phpserialize', '@database', '@lock']
+    arguments: ['@serialization.phpserialize', '@database', '@lock', '%user.tempstore.expire%']
+
+parameters:
+  user.tempstore.expire: 604800
