diff --git a/actionpack/lib/action_controller/rescue.rb b/actionpack/lib/action_controller/rescue.rb
index 0fe96479f4cfd..2ee320a304c55 100644
--- a/actionpack/lib/action_controller/rescue.rb
+++ b/actionpack/lib/action_controller/rescue.rb
@@ -77,8 +77,8 @@ def rescue_action_locally(exception)
def perform_action_with_rescue #:nodoc:
begin
perform_action_without_rescue
- rescue => exception
- if defined?(Breakpoint) and @params["BP-RETRY"] then
+ rescue Object => exception
+ if defined?(Breakpoint) && @params["BP-RETRY"]
msg = exception.backtrace.first
if md = /^(.+?):(\d+)(?::in `(.+)')?$/.match(msg) then
origin_file, origin_line = md[1], md[2].to_i
diff --git a/actionpack/lib/action_controller/templates/rescues/_request_and_response.rhtml b/actionpack/lib/action_controller/templates/rescues/_request_and_response.rhtml
index 23e622a47a68d..5f10d910986e1 100644
--- a/actionpack/lib/action_controller/templates/rescues/_request_and_response.rhtml
+++ b/actionpack/lib/action_controller/templates/rescues/_request_and_response.rhtml
@@ -7,18 +7,19 @@
<% if defined?(Breakpoint) %>
- <% begin %><%= form_tag({:params => {}, :only_path => true}, "method" => @request.method) %>
-
+ <% begin %>
+ <%= form_tag(@request.request_uri, "method" => @request.method) %>
+
- <% for key, values in @params %>
- <% next if key == "BP-RETRY" %>
- <% for value in Array(values) %>
-
+ <% for key, values in @params %>
+ <% next if key == "BP-RETRY" %>
+ <% for value in Array(values) %>
+
+ <% end %>
<% end %>
- <% end %>
-
-
+
+
<% rescue Exception => e %>
<%=h "Couldn't render breakpoint link due to #{e.class} #{e.message}" %>
<% end %>