diff --git a/jukebox.cabal b/jukebox.cabal
--- a/jukebox.cabal
+++ b/jukebox.cabal
@@ -1,5 +1,5 @@
 Name: jukebox
-Version: 0.2.8
+Version: 0.2.9
 Cabal-version: >= 1.8
 Build-type: Simple
 Author: Nick Smallbone
diff --git a/src/Jukebox/Form.hs b/src/Jukebox/Form.hs
--- a/src/Jukebox/Form.hs
+++ b/src/Jukebox/Form.hs
@@ -463,7 +463,9 @@
 
     bind :: Symbolic a => Bind a -> Bind a
     bind (Bind vs t) =
-      Bind vs (subst (checkBinder vs (Map.filterWithKey (\x _ -> x `Set.member` vs) s)) t)
+      Bind vs (subst (checkBinder vs (s Map.\\ vs')) t)
+      where
+        vs' = Map.fromSet (const ()) vs
 
     generic :: Symbolic a => a -> a
     generic t = recursively (subst s) t
