diff --git a/daemon/call.c b/daemon/call.c
index 1421e3f80..2963f4d96 100644
--- a/daemon/call.c
+++ b/daemon/call.c
@@ -4688,32 +4688,30 @@ static int call_get_dialogue(struct call_monologue *monologues[2], call_t *call,
 		}
 		/* it seems ft hasn't seen tt before */
 		goto tag_setup;
+	}
 
 	/* try to determine the monologue from the viabranch,
 	 * or using the top most tt's subscription, if there is one.
 	 * Otherwise just create a brand-new one.
 	 */
-	} else {
-		/* viabranch */
-		if (viabranch)
-			ft = t_hash_table_lookup(call->viabranches, viabranch);
-		/* top most subscription of tt */
-		if (!ft) {
-			struct call_media *media = tt->medias->len ? tt->medias->pdata[0] : NULL;
-			if (media && media->media_subscriptions.head) {
-				struct media_subscription * ms = media->media_subscriptions.head->data;
-				if (ms->monologue)
-					ft = ms->monologue;
-			}
+	if (viabranch)
+		ft = t_hash_table_lookup(call->viabranches, viabranch);
+	/* top most subscription of tt */
+	if (!ft) {
+		struct call_media *media = tt->medias->len ? tt->medias->pdata[0] : NULL;
+		if (media && media->media_subscriptions.head) {
+			struct media_subscription * ms = media->media_subscriptions.head->data;
+			if (ms->monologue)
+				ft = ms->monologue;
 		}
-		/* otherwise create a brand-new one.
-		 * The lookup of the offer monologue from the answer monologue is only valid,
-		 * if the offer monologue belongs to an unanswered call (empty tag),
-		 * hence `ft->tag` has to be empty at this stage.
-		 */
-		if (!ft || ft->tag.s)
-			ft = __monologue_create(call);
 	}
+	/* otherwise create a brand-new one.
+	 * The lookup of the offer monologue from the answer monologue is only valid,
+	 * if the offer monologue belongs to an unanswered call (empty tag),
+	 * hence `ft->tag` has to be empty at this stage.
+	 */
+	if (!ft || ft->tag.s)
+		ft = __monologue_create(call);
 
 tag_setup:
 	/* the fromtag monologue may be newly created, or half-complete from the totag, or