IF .T. collapses to its body; IF .F. forwards to the first live ELSEIF or ELSE. For dynamic main conditions the chain is still filtered: ELSEIF .F. drops out, ELSEIF .T. truncates and becomes the ELSE. Verified with /tmp/test_deadif.prg — five dead labels all removed from gen output, runtime emits only live branches. FiveSql2 43/43, Harbour compat 56/56. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>