diff --git a/actionpack/lib/action_controller/caching/actions.rb b/actionpack/lib/action_controller/caching/actions.rb
index <HASH>..<HASH> 100644
--- a/actionpack/lib/action_controller/caching/actions.rb
+++ b/actionpack/lib/action_controller/caching/actions.rb
@@ -93,7 +93,7 @@ module ActionController #:nodoc:
 
         # TODO: Remove once New Base is merged
         if defined?(ActionController::Http)
-          def around_process_action(controller)
+          def filter(controller)
             should_continue = before(controller)
             yield if should_continue
             after(controller)
diff --git a/activesupport/lib/active_support/new_callbacks.rb b/activesupport/lib/active_support/new_callbacks.rb
index <HASH>..<HASH> 100644
--- a/activesupport/lib/active_support/new_callbacks.rb
+++ b/activesupport/lib/active_support/new_callbacks.rb
@@ -313,8 +313,8 @@ module ActiveSupport
                   #{method_name}_object.send("filter", self, &blk)
                 # TODO: Deprecate this
                 elsif #{method_name}_object.respond_to?(:before) && #{method_name}_object.respond_to?(:after)
-                  #{method_name}_object.before(self)
-                  yield
+                  should_continue = #{method_name}_object.before(self)
+                  yield if should_continue
                   #{method_name}_object.after(self)
                 else
                   #{method_name}_object.send("#{kind}_#{name}", self, &blk)
Fix failing ActionCacheFilter tests due to around filter changes.