diff --git a/av1/encoder/rdopt.c b/av1/encoder/rdopt.c
index 92249a1..4a483b3 100644
--- a/av1/encoder/rdopt.c
+++ b/av1/encoder/rdopt.c
@@ -2440,8 +2440,10 @@
 #if CONFIG_FILTER_INTRA
   if (!is_inter_block(mbmi) &&
       mbmi->filter_intra_mode_info.use_filter_intra_mode[0] &&
-      !av1_filter_intra_allowed_txsize(tx_size))
+      !av1_filter_intra_allowed_txsize(tx_size)) {
+    rd_stats->rate = INT_MAX;
     return INT64_MAX;
+  }
 #endif
   txfm_rd_in_plane(x, cpi, rd_stats, ref_best_rd, 0, bs, tx_size,
                    cpi->sf.use_fast_coef_costing);
@@ -3134,7 +3136,7 @@
   MB_MODE_INFO *mbmi = &mic->mbmi;
   int filter_intra_selected_flag = 0;
   FILTER_INTRA_MODE mode;
-  TX_SIZE best_tx_size = TX_4X4;
+  TX_SIZE best_tx_size = TX_8X8;
   FILTER_INTRA_MODE_INFO filter_intra_mode_info;
   TX_TYPE best_tx_type;
 
@@ -3619,7 +3621,8 @@
   }
 
 #if CONFIG_FILTER_INTRA
-  if (beat_best_rd && av1_filter_intra_allowed_bsize(bsize)) {
+  if (beat_best_rd && av1_filter_intra_allowed_bsize(bsize) &&
+      !xd->lossless[mbmi->segment_id]) {
     if (rd_pick_filter_intra_sby(cpi, x, rate, rate_tokenonly, distortion,
                                  skippable, bsize, bmode_costs[DC_PRED],
                                  &best_rd, &best_model_rd,
@@ -9746,7 +9749,8 @@
       skippable = rd_stats_y.skip;
 
 #if CONFIG_FILTER_INTRA
-      if (mbmi->mode == DC_PRED) {
+      if (mbmi->mode == DC_PRED && !xd->lossless[mbmi->segment_id] &&
+          av1_filter_intra_allowed_bsize(mbmi->sb_type)) {
         RD_STATS rd_stats_y_fi;
         int filter_intra_selected_flag = 0;
         TX_SIZE best_tx_size = mbmi->tx_size;
