diff --git a/compiler/packages/babel-plugin-react-compiler/src/Optimization/ConstantPropagation.ts b/compiler/packages/babel-plugin-react-compiler/src/Optimization/ConstantPropagation.ts
index a447b0f71f..82e23e57e8 100644
--- a/compiler/packages/babel-plugin-react-compiler/src/Optimization/ConstantPropagation.ts
+++ b/compiler/packages/babel-plugin-react-compiler/src/Optimization/ConstantPropagation.ts
@@ -175,14 +175,13 @@ function applyConstantPropagation(
if (testValue !== null && testValue.kind === 'Primitive') {
hasChanges = true;
const targetBlockId = testValue.value
- ? /*
- * Do I need to change these from being value blocks?
- * Currently getting
- * Invariant: Expected a fallthrough for value block (6:6)
- */
- branchBlock.terminal.consequent
+ ? branchBlock.terminal.consequent
: branchBlock.terminal.alternate;
+
+ // I think I can only set this if the block isn't
+ // used in a value position by its predecessor
block.kind = 'block';
+
block.terminal = {
kind: 'goto',
variant: GotoVariant.Break,
diff --git a/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/constant-propagation-ternary-nested-unary.expect.md b/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/constant-propagation-ternary-nested-unary.expect.md
new file mode 100644
index 0000000000..15e91fb923
--- /dev/null
+++ b/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/constant-propagation-ternary-nested-unary.expect.md
@@ -0,0 +1,83 @@
+
+## Input
+
+```javascript
+// @enableTernaryConstantPropagation
+import {Stringify} from 'shared-runtime';
+
+function foo() {
+ let _b;
+ const b = true;
+ _b = !b ? 'bar' : b ? 'foo' : 'baz';
+
+ return (
+