diff --git a/Gemfile b/Gemfile
index f74d69fdc8370d4c463d58ea596a3e0b3681ae11..dfe54fda99eb61c778747ef82b5ea7049c02c530 100644
--- a/Gemfile
+++ b/Gemfile
@@ -126,6 +126,7 @@ group :test do
   gem 'rspec-rails', '>= 2.0.0'
   gem "selenium-webdriver", "~> 2.7.0"
   gem 'webmock', :require => false
+  gem 'sqlite3'
 end
 
 group :development do
diff --git a/Gemfile.lock b/Gemfile.lock
index ab60110e5465931171fe6dae9f09bc4b5247e462..4f0df15caa87e60bffaa5a6d8765279eda33558c 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -425,6 +425,7 @@ GEM
     sinatra (1.2.6)
       rack (~> 1.1)
       tilt (< 2.0, >= 1.2.2)
+    sqlite3 (1.3.4)
     subexec (0.0.4)
     systemu (2.4.0)
     term-ansicolor (1.0.6)
@@ -534,6 +535,7 @@ DEPENDENCIES
   selenium-webdriver (~> 2.7.0)
   settingslogic (= 2.0.6)
   sod!
+  sqlite3
   thin (= 1.2.11)
   twitter (= 1.5.0)
   typhoeus
diff --git a/config/environment.rb b/config/environment.rb
index fdefe893be1c774d637d26b005ff184526290b10..50705b86175799ee57fc453018055198dbe9e21b 100644
--- a/config/environment.rb
+++ b/config/environment.rb
@@ -7,6 +7,10 @@ def postgres?
   @using_postgres ||= defined?(ActiveRecord::ConnectionAdapters::PostgreSQLAdapter) && ActiveRecord::Base.connection.is_a?(ActiveRecord::ConnectionAdapters::PostgreSQLAdapter)
 end
 
+def sqlite?
+  @using_sqlite ||= defined?(ActiveRecord::ConnectionAdapters::SQLite3Adapter) && ActiveRecord::Base.connection.class == ActiveRecord::ConnectionAdapters::SQLite3Adapter
+end
+
 # Load the rails application
 require File.expand_path('../application', __FILE__)
 Haml::Template.options[:format] = :html5
diff --git a/lib/diaspora/user/querying.rb b/lib/diaspora/user/querying.rb
index b7fbeb576b515a0aea133e4aaf3b2d53c1b719c7..0cc63f481c8672a70b96338ab0bacb30eacf2944 100644
--- a/lib/diaspora/user/querying.rb
+++ b/lib/diaspora/user/querying.rb
@@ -39,10 +39,11 @@ module Diaspora
           posts_from_self = posts_from_self.joins(:aspect_visibilities).where(:aspect_visibilities => {:aspect_id => opts[:by_members_of]})
         end
 
-        unless defined?(ActiveRecord::ConnectionAdapters::SQLite3Adapter) && ActiveRecord::Base.connection.class == ActiveRecord::ConnectionAdapters::SQLite3Adapter
-          posts_from_others = posts_from_others.select(select_clause).limit(opts[:limit]).order(order_with_table).where(Post.arel_table[order_field].lt(opts[:max_time]))
-          posts_from_self = posts_from_self.select(select_clause).limit(opts[:limit]).order(order_with_table).where(Post.arel_table[order_field].lt(opts[:max_time]))
-          all_posts = "(#{posts_from_others.to_sql}) UNION ALL (#{posts_from_self.to_sql}) ORDER BY #{opts[:order]} LIMIT #{opts[:limit]}"
+        unless sqlite? 
+          posts_from_others = posts_from_others.select(select_clause).order(order_with_table).where(Post.arel_table[order_field].lt(opts[:max_time]))
+          posts_from_self = posts_from_self.select(select_clause).order(order_with_table).where(Post.arel_table[order_field].lt(opts[:max_time]))
+
+          all_posts = "(#{posts_from_others.to_sql} LIMIT #{opts[:limit]}) UNION ALL (#{posts_from_self.to_sql} LIMIT #{opts[:limit]}) ORDER BY #{opts[:order]} LIMIT #{opts[:limit]}"
         else
           posts_from_others = posts_from_others.select(select_clause)
           posts_from_self = posts_from_self.select(select_clause)