diff --git a/app/lib/feed_manager.rb b/app/lib/feed_manager.rb
index b0dda125648c5d8e0be407f16dd3ed9172cb00cc..cd6ca12918098101d39a8a3b741af68ae54e6024 100644
--- a/app/lib/feed_manager.rb
+++ b/app/lib/feed_manager.rb
@@ -52,7 +52,7 @@ class FeedManager
     timeline_key = key(:home, into_account.id)
 
     from_account.statuses.limit(MAX_ITEMS).each do |status|
-      next if filter?(:home, status, into_account)
+      next if status.direct_visibility? || filter?(:home, status, into_account)
       redis.zadd(timeline_key, status.id, status.id)
     end
 
diff --git a/app/services/precompute_feed_service.rb b/app/services/precompute_feed_service.rb
index 984eb8e862656d6b597a1cb0e2e36b49c3d7f508..e1ec56e8d3bde09b11795cc197ea6b277f017829 100644
--- a/app/services/precompute_feed_service.rb
+++ b/app/services/precompute_feed_service.rb
@@ -6,7 +6,7 @@ class PrecomputeFeedService < BaseService
   # @param [Account] account
   def call(_, account)
     Status.as_home_timeline(account).limit(FeedManager::MAX_ITEMS).each do |status|
-      next if (status.direct_visibility? && !status.permitted?(account)) || FeedManager.instance.filter?(:home, status, account)
+      next if status.direct_visibility? || FeedManager.instance.filter?(:home, status, account)
       redis.zadd(FeedManager.instance.key(:home, account.id), status.id, status.reblog? ? status.reblog_of_id : status.id)
     end
   end