diff --git a/lib/trestle/controller/location.rb b/lib/trestle/controller/location.rb
index <HASH>..<HASH> 100644
--- a/lib/trestle/controller/location.rb
+++ b/lib/trestle/controller/location.rb
@@ -4,11 +4,15 @@ module Trestle
       extend ActiveSupport::Concern
 
       included do
-        after_action :set_trestle_location_header, unless: :dialog_request?
+        after_action :set_trestle_location_header
       end
 
+      # The X-Trestle-Location header is set to indicate that the remote form has triggered
+      # a new page URL (e.g. new -> show) without demanding a full page refresh.
       def set_trestle_location_header
-        headers["X-Trestle-Location"] = request.path
+        unless dialog_request? || response.location
+          headers["X-Trestle-Location"] = request.path
+        end
       end
     end
   end
Do not set X-Trestle-Location header when Location header is set