diff --git a/src/packet/Packet.py b/src/packet/Packet.py
index 71f614333e2fb6b021f0586c4e1961fdc3a5fec5..9c60a96c7ecbee8eb20abd0e91e1897ff498fcfc 100644
--- a/src/packet/Packet.py
+++ b/src/packet/Packet.py
@@ -187,9 +187,11 @@ class Packet:
 
     def rebuild(self) -> None:
         """
-        Rebuild packet.
+        Rebuild packet, but keep old timestamp.
         """
+        timestamp = self.packet.time
         self.packet = self.packet.__class__(bytes(self.packet))
+        self.packet.time = timestamp
     
 
     def update_checksums(self) -> None:
@@ -302,7 +304,7 @@ class Packet:
         # Set new value for field
         self.layer.setfieldval(field, new_value)
 
-        # Update checksums, if needed
+        # Update checksums
         self.update_checksums()
 
         # Return value: dictionary containing tweak information
diff --git a/src/pcap_tweaker.py b/src/pcap_tweaker.py
index 16dbd65960b5d721388c5ed06d3d3c8e3fabd2b4..d42f28e79777a644d2f39ccf3f148d5a0a618df7 100644
--- a/src/pcap_tweaker.py
+++ b/src/pcap_tweaker.py
@@ -47,12 +47,16 @@ def must_edit_packet(i: int, packet_numbers: list, random_range: int) -> bool:
 
 def rebuild_packet(packet: scapy.Packet) -> scapy.Packet:
     """
-    Rebuild a Scapy packet from its bytes representation.
+    Rebuild a Scapy packet from its bytes representation,
+    but keep its old timestamp.
 
     :param packet: Scapy packet
-    :return: Rebuilt Scapy packet
+    :return: Rebuilt Scapy packet, with old timestamp
     """
-    return packet.__class__(bytes(packet))
+    timestamp = packet.time
+    new_packet = packet.__class__(bytes(packet))
+    new_packet.time = timestamp
+    return new_packet
 
 
 def tweak_pcaps(pcaps: list, output: str, random_range: int = 1, packet_numbers: list = None, dry_run: bool = False) -> None: