diff --git a/datacenterlight/views.py b/datacenterlight/views.py
index edc95ee9..7b67acd5 100644
--- a/datacenterlight/views.py
+++ b/datacenterlight/views.py
@@ -528,8 +528,10 @@ class PaymentOrderView(FormView):
                     self.request.session['generic_payment_type'] == 'generic'):
                 return HttpResponseRedirect(
                     reverse('datacenterlight:order_confirmation'))
-            return HttpResponseRedirect(
-                reverse('datacenterlight:add_ssh_key'))
+            else:
+                self.request.session['order_confirm_url'] = reverse('datacenterlight:order_confirmation')
+                return HttpResponseRedirect(
+                    reverse('datacenterlight:add_ssh_key'))
         else:
             context = self.get_context_data()
             context['billing_address_form'] = address_form
diff --git a/hosting/views.py b/hosting/views.py
index 97b7f42c..9f7ce8cc 100644
--- a/hosting/views.py
+++ b/hosting/views.py
@@ -769,10 +769,10 @@ class PaymentVMView(LoginRequiredMixin, FormView):
                         reverse('hosting:payment') + '#payment_error')
                 request.session['token'] = token
             request.session['billing_address_data'] = billing_address_data
-            return HttpResponseRedirect("{url}?{query_params}".format(
-                url=reverse('hosting:order-confirmation'),
-                query_params='page=payment')
-            )
+            self.request.session['order_confirm_url'] = "{url}?{query_params}".format(
+                    url=reverse('hosting:order-confirmation'),
+                    query_params='page=payment')
+            return HttpResponseRedirect(reverse('hosting:add_ssh_key'))
         else:
             return self.form_invalid(form)