diff --git a/features.module b/features.module
index 681f05a..55b8a96 100644
--- a/features.module
+++ b/features.module
@@ -28,14 +28,10 @@ function features_help($route_name, RouteMatchInterface $route_match) {
 function features_file_download($uri) {
   $scheme = file_uri_scheme($uri);
   $target = file_uri_target($uri);
-  $session = \Drupal::request()->getSession();
-  if (isset($session)) {
-    $archive_name = $session->get('features_download');
-    if ($scheme == 'temporary' && $target == $archive_name) {
-      return array(
-        'Content-disposition' => 'attachment; filename="' . $archive_name . '"',
-      );
-    }
+  if ($scheme == 'temporary' && $target) {
+    return array(
+      'Content-disposition' => 'attachment; filename="' . $target . '"',
+    );
   }
 }
 
diff --git a/features.routing.yml b/features.routing.yml
index 3fc9c3c..aac9c01 100644
--- a/features.routing.yml
+++ b/features.routing.yml
@@ -1,5 +1,5 @@
 features.export_download:
-  path: '/admin/config/development/configuration/features/download'
+  path: '/admin/config/development/configuration/features/download/{uri}'
   defaults:
     _controller: 'Drupal\features\Controller\FeaturesController::downloadExport'
   requirements:
diff --git a/modules/features_ui/src/Form/FeaturesEditForm.php b/modules/features_ui/src/Form/FeaturesEditForm.php
index f74a83d..0969214 100644
--- a/modules/features_ui/src/Form/FeaturesEditForm.php
+++ b/modules/features_ui/src/Form/FeaturesEditForm.php
@@ -133,7 +133,7 @@ class FeaturesEditForm extends FormBase {
    * {@inheritdoc}
    */
   public function buildForm(array $form, FormStateInterface $form_state, $featurename = '') {
-    $session = \Drupal::request()->getSession();
+    $session = $this->getRequest()->getSession();
     $this->allowConflicts = FALSE;
     if (isset($session)) {
       $this->allowConflicts = $session->get('features_allow_conflicts', FALSE);
diff --git a/src/Controller/FeaturesController.php b/src/Controller/FeaturesController.php
index 8f131b2..2298bed 100644
--- a/src/Controller/FeaturesController.php
+++ b/src/Controller/FeaturesController.php
@@ -46,11 +46,9 @@ class FeaturesController implements ContainerInjectionInterface {
   /**
    * Downloads a tarball of the site configuration.
    */
-  public function downloadExport() {
-    $session = \Drupal::request()->getSession();
-    if (isset($session)) {
-      $archive_name = $session->get('features_download');
-      $request = new Request(array('file' => $archive_name));
+  public function downloadExport($uri) {
+    if ($uri) {
+      $request = new Request(array('file' => $uri));
       return $this->fileDownloadController->download($request, 'temporary');
     }
   }
diff --git a/src/Plugin/FeaturesGeneration/FeaturesGenerationArchive.php b/src/Plugin/FeaturesGeneration/FeaturesGenerationArchive.php
index bbc2ddd..686fcf0 100644
--- a/src/Plugin/FeaturesGeneration/FeaturesGenerationArchive.php
+++ b/src/Plugin/FeaturesGeneration/FeaturesGenerationArchive.php
@@ -241,11 +241,7 @@ class FeaturesGenerationArchive extends FeaturesGenerationMethodBase {
    */
   public function exportFormSubmit(array &$form, FormStateInterface $form_state) {
     // Redirect to the archive file download.
-    $session = \Drupal::request()->getSession();
-    if (isset($session)) {
-      $session->set('features_download', $this->archiveName);
-    }
-    $form_state->setRedirect('features.export_download');
+    $form_state->setRedirect('features.export_download', ['uri' => $this->archiveName]);
   }
 
 }
