diff --git plugins/scrum/init.rb plugins/scrum/init.rb
index 5a956a4..4cebda0 100644
--- plugins/scrum/init.rb
+++ plugins/scrum/init.rb
@@ -15,7 +15,7 @@ end
 ApplicationHelper.send(:include, Scrum::ApplicationHelperPatch)
 CalendarsController.send(:include, Scrum::CalendarsControllerPatch)
 Issue.send(:include, Scrum::IssuePatch)
-IssueQuery.send(:include, Scrum::IssueQueryPatch)
+IssueQuery.send(:prepend, Scrum::IssueQueryPatch)
 IssuesController.send(:include, Scrum::IssuesControllerPatch)
 IssueStatus.send(:include, Scrum::IssueStatusPatch)
 Journal.send(:include, Scrum::JournalPatch)
diff --git plugins/scrum/lib/scrum/issue_query_patch.rb plugins/scrum/lib/scrum/issue_query_patch.rb
index 8ca3580..f12bfa0 100644
--- plugins/scrum/lib/scrum/issue_query_patch.rb
+++ plugins/scrum/lib/scrum/issue_query_patch.rb
@@ -9,62 +9,62 @@ require_dependency "issue_query"
 
 module Scrum
   module IssueQueryPatch
-    def self.included(base)
+    def self.prepended(base)
       base.class_eval do
 
+        # Transparent Overload
         self.available_columns << QueryColumn.new(:sprint,
                                                   :sortable => lambda {Sprint.fields_for_order_statement},
                                                   :groupable => true)
+        # Transparent Overload
         self.available_columns << QueryColumn.new(:position,
                                                   :sortable => "#{Issue.table_name}.position")
+      end
 
-        def initialize_available_filters_with_scrum
-          filters = initialize_available_filters_without_scrum
-          if project
-            sprints = project.sprints_and_product_backlog
-            if sprints.any?
-              add_available_filter "sprint_id",
-                                   :type => :list_optional,
-                                   :values => sprints.sort.collect{|s| [s.name, s.id.to_s]}
-              add_available_filter "position",
-                                   :type => :integer
-              add_associations_custom_fields_filters :sprint
-            end
+      def initialize_available_filters
+        filters = super
+        if project
+          sprints = project.sprints_and_product_backlog
+          if sprints.any?
+            add_available_filter "sprint_id",
+                                 :type => :list_optional,
+                                 :values => sprints.sort.collect{|s| [s.name, s.id.to_s]}
+            add_available_filter "position",
+                                 :type => :integer
+            add_associations_custom_fields_filters :sprint
           end
-          filters
         end
-        alias_method_chain :initialize_available_filters, :scrum
+        filters
+      end
 
-        def issues_with_scrum(options = {})
-          options[:include] ||= {}
-          options[:include] << :sprint
-          issues_without_scrum(options)
-        end
-        alias_method_chain :issues, :scrum
+      # Transparent Overload
+      def issues(options = {})
+        options[:include] ||= {}
+        options[:include] << :sprint
+        super(options)
+      end
 
-        def issue_ids_with_scrum(options = {})
-          options[:include] ||= {}
-          options[:include] << :sprint
-          issue_ids_without_scrum(options)
-        end
-        alias_method_chain :issue_ids, :scrum
+      # Transparent Overload
+      def issue_ids(options = {})
+        options[:include] ||= {}
+        options[:include] << :sprint
+        super(options)
+      end
 
-        def available_columns_with_scrum()
-          if !@available_columns
-            @available_columns = available_columns_without_scrum
-            index = nil
-            @available_columns.each_with_index {|column, i| index = i if column.name == :estimated_hours}
-            index = (index ? index + 1 : -1)
-            # insert the column after estimated_hours or at the end
-            @available_columns.insert index, QueryColumn.new(:pending_effort,
-              :sortable => "COALESCE((SELECT effort FROM #{PendingEffort.table_name} WHERE #{PendingEffort.table_name}.issue_id = #{Issue.table_name}.id ORDER BY #{PendingEffort.table_name}.date DESC LIMIT 1), 0)",
-              :default_order => 'desc'
-            )
-          end
-          return @available_columns
-        end
-        alias_method_chain :available_columns, :scrum
+      def available_columns
+        if !@available_columns
+          @available_columns = super
+          index = nil
+          @available_columns.each_with_index {|column, i| index = i if column.name == :estimated_hours}
+          index = (index ? index + 1 : -1)
 
+          # insert the pending_effort column after estimated_hours or at the end
+          @available_columns.insert index, QueryColumn.new(:pending_effort,
+            :sortable => "COALESCE((SELECT effort FROM #{PendingEffort.table_name} WHERE #{PendingEffort.table_name}.issue_id = #{Issue.table_name}.id ORDER BY #{PendingEffort.table_name}.date DESC LIMIT 1), 0)",
+            :default_order => 'desc'
+          )
+        end
+        return @available_columns
       end
     end
   end
