Paginating a find statement with :select => "distinct products.* "

My selection of products from a Products table looks like this:

    # Get products on department promotion     @products = Product.find(:all,     :select => "distinct products.*",     :order => " product_id ",     :joins => " inner join category_products " +                 " on products.product_id = category_products.product_id " +               " inner join categories " +                 " on category_products.category_id = categories.category_id ",     :conditions => ["products.on_department_promotion = ? " +            " AND categories.department_id = ?", true, params[:id]])

When I try to substitute a pagination statement for the find statement, for example:

    @products = Product.paginate(:all,     :page => params[:page],     :select => "distinct products.*",     :order => " product_id ",     :joins => " inner join category_products " +                 " on products.product_id = category_products.product_id " +               " inner join categories " +                 " on category_products.category_id = categories.category_id ",     :conditions => ["products.on_department_promotion = ? " +            " AND categories.department_id = ?", true, params[:id]])

the paginage gem/plugin can't interpret the select distinct statement an typically gives an error like:

    SQLite3::SQLException: near "*": syntax error: SELECT count(distinct     products.*) AS count_distinct_products_all FROM products inner join     etc., etc., etc.

Can anyone tell me how to paginate the results of the original find statement?

Carson