<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -61,35 +61,45 @@ if defined? Mongrel::HttpServer
   end
 end
 
-# Patch for work with passenger &lt; 2.1.0
-if defined? Passenger::Railz::RequestHandler
-  class Passenger::Railz::RequestHandler
-    alias_method :orig_process_request, :process_request
-    def process_request(headers, input, output)
-      Spawn.resources_to_close(input, output)
-      orig_process_request(headers, input, output)
+need_passenger_patch = true
+if defined? PhusionPassenger::VERSION_STRING
+  # The VERSION_STRING variable was defined sometime after 2.1.0.
+  # We don't need passenger patch for 2.2.2 or later.
+  pv = PhusionPassenger::VERSION_STRING.split('.').collect{|s| s.to_i}
+  need_passenger_patch = pv[0] &lt; 2 || (pv[0] == 2 &amp;&amp; (pv[1] &lt; 2 || (pv[1] == 2 &amp;&amp; pv[2] &lt; 2)))
+end
+
+if need_passenger_patch
+  # Patch for work with passenger &lt; 2.1.0
+  if defined? Passenger::Railz::RequestHandler
+    class Passenger::Railz::RequestHandler
+      alias_method :orig_process_request, :process_request
+      def process_request(headers, input, output)
+        Spawn.resources_to_close(input, output)
+        orig_process_request(headers, input, output)
+      end
     end
   end
-end
 
-# Patch for work with passenger &gt;= 2.1.0
-if defined? PhusionPassenger::Railz::RequestHandler
-  class PhusionPassenger::Railz::RequestHandler
-    alias_method :orig_process_request, :process_request
-    def process_request(headers, input, output)
-      Spawn.resources_to_close(input, output)
-      orig_process_request(headers, input, output)
+  # Patch for work with passenger &gt;= 2.1.0
+  if defined? PhusionPassenger::Railz::RequestHandler
+    class PhusionPassenger::Railz::RequestHandler
+      alias_method :orig_process_request, :process_request
+      def process_request(headers, input, output)
+        Spawn.resources_to_close(input, output)
+        orig_process_request(headers, input, output)
+      end
     end
   end
-end
 
-# Patch for passenger with Rails &gt;= 2.3.0 (uses rack)
-if defined? PhusionPassenger::Rack::RequestHandler
-  class PhusionPassenger::Rack::RequestHandler
-    alias_method :orig_process_request, :process_request
-    def process_request(headers, input, output)
-      Spawn.resources_to_close(input, output)
-      orig_process_request(headers, input, output)
+  # Patch for passenger with Rails &gt;= 2.3.0 (uses rack)
+  if defined? PhusionPassenger::Rack::RequestHandler
+    class PhusionPassenger::Rack::RequestHandler
+      alias_method :orig_process_request, :process_request
+      def process_request(headers, input, output)
+        Spawn.resources_to_close(input, output)
+        orig_process_request(headers, input, output)
+      end
     end
   end
 end</diff>
      <filename>lib/patches.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>e2ef81b8613c2318d246c1e0590f740d51990104</id>
    </parent>
  </parents>
  <author>
    <name>Tom Anderson</name>
    <email>tom@squeat.com</email>
  </author>
  <url>http://github.com/tra/spawn/commit/3a7a730bd7b08a89b757ae6fca26dfd7d60d9109</url>
  <id>3a7a730bd7b08a89b757ae6fca26dfd7d60d9109</id>
  <committed-date>2009-04-25T18:14:15-07:00</committed-date>
  <authored-date>2009-04-25T18:14:15-07:00</authored-date>
  <message>remove patch for Passenger 2.2.2 and later</message>
  <tree>554dcb694d1f4d91c9971e0e711fc851f3e0e7d6</tree>
  <committer>
    <name>Tom Anderson</name>
    <email>tom@squeat.com</email>
  </committer>
</commit>
