diff --git a/Makefile b/Makefile
--- a/Makefile
+++ b/Makefile
@@ -63,7 +63,7 @@
 	$(RM) html
 
 
-VERSION = 0.6.2
+VERSION = 0.6.3
 DISTDIR = alms-$(VERSION)
 TARBALL = $(DISTDIR).tar.gz
 
diff --git a/alms.cabal b/alms.cabal
--- a/alms.cabal
+++ b/alms.cabal
@@ -1,5 +1,5 @@
 Name:           alms
-Version:        0.6.2
+Version:        0.6.3
 Copyright:      2011, Jesse A. Tov
 Cabal-Version:  >= 1.8
 License:        BSD3
diff --git a/src/AST/Expr.hs b/src/AST/Expr.hs
--- a/src/AST/Expr.hs
+++ b/src/AST/Expr.hs
@@ -211,7 +211,7 @@
     }
   ExRec True flds e2 ->
     newNote {
-      efv_  = fv (ADDITIVE flds) |*| fv e2,
+      efv_  = fv (ADDITIVE flds) |+| fv e2,
       eloc_ = getLoc (flds, e2)
     }
   ExRec False flds e2 ->
diff --git a/src/Statics/Expr.hs b/src/Statics/Expr.hs
--- a/src/Statics/Expr.hs
+++ b/src/Statics/Expr.hs
@@ -214,6 +214,12 @@
                  [AST.Field R] → AST.Expr R → Maybe (Type tv) →
                  m ([AST.Field R], AST.Expr R, Type tv)
 inferRecordExp bqual e0 φ δ γ flds e2 mσ = do
+  when bqual . tassert (AST.syntacticValue e2) $
+    [msg|
+      In an additive-record extension expression, the record being
+      extended must be a syntactic value:
+      <dl><dt>expression: <dd>$5:e2</dl>
+    |]
   let qual = if bqual then tyAf else tyUn
   [_, mσRow]         ← splitCon mσ tcRecord
   let eachFld mσRow' [fdQ| $uid:ui = $ei |] = do
