diff --git a/lib/chili_project/liquid/liquid_ext/strainer.rb b/lib/chili_project/liquid/liquid_ext/strainer.rb
index e038159db4d84102de8c570fd4b3fec9db840bd0..dac6d771e7ab134697917d1990a05dab2501e8bf 100644
--- a/lib/chili_project/liquid/liquid_ext/strainer.rb
+++ b/lib/chili_project/liquid/liquid_ext/strainer.rb
@@ -19,20 +19,22 @@ module ChiliProject
       module Strainer
         def self.included(base)
           base.extend(ClassMethods)
-          base.class_eval do
-            @@filters = []
-          end
+
+          base.class_attribute :filters, :instance_reader => false, :instance_writer => false
+          base.class_eval <<-RUBY, __FILE__, __LINE__ + 1
+            self.filters = @@filters.values
+          RUBY
         end
 
         module ClassMethods
           def global_filter(filter)
             raise ArgumentError, "Passed filter is not a module" unless filter.is_a?(Module)
-            @@filters << filter
+            filters += [filter]
           end
 
           def create(context)
             strainer = self.new(context)
-            @@filters.each { |filter| strainer.extend(filter) }
+            filters.each { |filter| strainer.extend(filter) }
             strainer
           end
         end