diff --git a/translate.c b/translate.c
index 0f2bc9efcbfec9d3c9aa981f8fc8ea365a807e84..4ed3feceefac8a1b62aecbfaaca8bfddc495c2f1 100755
--- a/translate.c
+++ b/translate.c
@@ -130,9 +130,12 @@ struct ast_frame *ast_translate(struct ast_trans_pvt *path, struct ast_frame *f,
 {
 	struct ast_trans_pvt *p;
 	struct ast_frame *out;
+	struct timeval delivery;
 	p = path;
 	/* Feed the first frame into the first translator */
 	p->step->framein(p->state, f);
+	delivery.tv_sec = f->delivery.tv_sec;
+	delivery.tv_usec = f->delivery.tv_usec;
 	if (consume)
 		ast_frfree(f);
 	while(p) {
@@ -144,8 +147,11 @@ struct ast_frame *ast_translate(struct ast_trans_pvt *path, struct ast_frame *f,
 		   return this frame  */
 		if (p->next) 
 			p->next->step->framein(p->next->state, out);
-		else
+		else {
+			out->delivery.tv_sec = f->delivery.tv_sec;
+			out->delivery.tv_usec = f->delivery.tv_usec;
 			return out;
+		}
 		p = p->next;
 	}
 	ast_log(LOG_WARNING, "I should never get here...\n");