diff --git a/lib/sprockets/processing.rb b/lib/sprockets/processing.rb
index <HASH>..<HASH> 100644
--- a/lib/sprockets/processing.rb
+++ b/lib/sprockets/processing.rb
@@ -202,7 +202,9 @@ module Sprockets
           processors += config[:postprocessors][type]
 
           if type != file_type && processor = transformers[file_type][type]
+            processors += config[:preprocessors][type]
             processors += [processor]
+            processors += config[:postprocessors][file_type]
           end
 
           processors += engine_extnames.map { |ext| engines[ext] }
diff --git a/test/test_environment.rb b/test/test_environment.rb
index <HASH>..<HASH> 100644
--- a/test/test_environment.rb
+++ b/test/test_environment.rb
@@ -619,7 +619,7 @@ class TestEnvironment < Sprockets::TestCase
 
     assert asset = @env.find_asset("logo.png")
     assert_equal "image/png", asset.content_type
-    assert_equal [:pre_svg, :post_png], asset.metadata[:test]
+    assert_equal [:pre_svg, :post_svg, :pre_png, :post_png], asset.metadata[:test]
   end
 
   test "access selector count metadata" do
Include pre/post when running transformers