diff --git a/java/com/android/dialer/rtt/RttTranscriptActivity.java b/java/com/android/dialer/rtt/RttTranscriptActivity.java
index 2087250..a878520 100644
--- a/java/com/android/dialer/rtt/RttTranscriptActivity.java
+++ b/java/com/android/dialer/rtt/RttTranscriptActivity.java
@@ -61,7 +61,6 @@
 
     RecyclerView recyclerView = findViewById(R.id.rtt_recycler_view);
     LinearLayoutManager layoutManager = new LinearLayoutManager(this);
-    layoutManager.setStackFromEnd(true);
     recyclerView.setLayoutManager(layoutManager);
     recyclerView.setHasFixedSize(true);
     adapter = new RttTranscriptAdapter(this);
diff --git a/java/com/android/dialer/rtt/RttTranscriptAdapter.java b/java/com/android/dialer/rtt/RttTranscriptAdapter.java
index 6e03034..52f9d84 100644
--- a/java/com/android/dialer/rtt/RttTranscriptAdapter.java
+++ b/java/com/android/dialer/rtt/RttTranscriptAdapter.java
@@ -21,6 +21,7 @@
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
+import com.android.dialer.common.LogUtil;
 import com.android.dialer.glidephotomanager.PhotoInfo;
 
 /** Adapter class for holding RTT chat data. */
@@ -30,6 +31,7 @@
 
   private final Context context;
   private RttTranscript rttTranscript;
+  private int firstPositionToShowTimestamp;
 
   RttTranscriptAdapter(Context context) {
     this.context = context;
@@ -65,7 +67,9 @@
       rttChatMessageViewHolder.hideTimestamp();
     } else {
       rttChatMessageViewHolder.showTimestamp(
-          rttTranscriptMessage.getTimestamp(), rttTranscriptMessage.getIsRemote(), i == 0);
+          rttTranscriptMessage.getTimestamp(),
+          rttTranscriptMessage.getIsRemote(),
+          i == firstPositionToShowTimestamp);
     }
   }
 
@@ -78,10 +82,30 @@
   }
 
   void setRttTranscript(RttTranscript rttTranscript) {
+    if (rttTranscript == null) {
+      LogUtil.w("RttTranscriptAdapter.setRttTranscript", "null RttTranscript");
+      return;
+    }
     this.rttTranscript = rttTranscript;
+    firstPositionToShowTimestamp = findFirstPositionToShowTimestamp(rttTranscript);
+
     notifyDataSetChanged();
   }
 
+  /**
+   * Returns first position of message that should show time stamp. This is usually the last one of
+   * first grouped messages.
+   */
+  protected static int findFirstPositionToShowTimestamp(RttTranscript rttTranscript) {
+    int i = 0;
+    while (i + 1 < rttTranscript.getMessagesCount()
+        && rttTranscript.getMessages(i).getIsRemote()
+            == rttTranscript.getMessages(i + 1).getIsRemote()) {
+      i++;
+    }
+    return i;
+  }
+
   void setPhotoInfo(PhotoInfo photoInfo) {
     this.photoInfo = photoInfo;
   }
