diff --git a/Control/Shell.hs b/Control/Shell.hs
--- a/Control/Shell.hs
+++ b/Control/Shell.hs
@@ -84,7 +84,7 @@
 insert k' v' (kv@(k, _) : kvs)
   | k == k'   = (k', v') : kvs
   | otherwise = kv : insert k' v' kvs
-insert _ _ _  = []
+insert k v _  = [(k, v)]
 
 delete :: Eq k => k -> [(k, v)] -> [(k, v)]
 delete k' (kv@(k, _) : kvs)
diff --git a/Control/Shell/Internal.hs b/Control/Shell/Internal.hs
--- a/Control/Shell/Internal.hs
+++ b/Control/Shell/Internal.hs
@@ -133,10 +133,17 @@
       , Proc.std_out      = Proc.UseHandle envStdOut
       , Proc.std_err      = Proc.UseHandle envStdErr
       , Proc.close_fds    = closefds
+      , Proc.create_group = False
 #if MIN_VERSION_process(1,2,0)
       , Proc.delegate_ctlc = False
 #endif
-      , Proc.create_group = False
+#if MIN_VERSION_process(1,3,0)
+      , Proc.detach_console     = False
+      , Proc.create_new_console = False
+      , Proc.new_session        = False
+      , Proc.child_group        = Nothing
+      , Proc.child_user         = Nothing
+#endif
       }
 runStep closefds env (Internal cmd) = do
   v <- Conc.newEmptyMVar
diff --git a/shellmate.cabal b/shellmate.cabal
--- a/shellmate.cabal
+++ b/shellmate.cabal
@@ -1,5 +1,5 @@
 name:                shellmate
-version:             0.3.2.1
+version:             0.3.2.2
 synopsis:            Simple interface for shell scripting in Haskell.
 description:         Aims to simplify development of cross-platform shell scripts and similar things.
 homepage:            https://github.com/valderman/shellmate
