diff --git a/csound-expression-dynamic.cabal b/csound-expression-dynamic.cabal
--- a/csound-expression-dynamic.cabal
+++ b/csound-expression-dynamic.cabal
@@ -1,5 +1,5 @@
 Name:          csound-expression-dynamic
-Version:       0.0.3
+Version:       0.0.4
 Cabal-Version: >= 1.6
 License:       BSD3
 License-file:  LICENSE
diff --git a/src/Csound/Dynamic/Build.hs b/src/Csound/Dynamic/Build.hs
--- a/src/Csound/Dynamic/Build.hs
+++ b/src/Csound/Dynamic/Build.hs
@@ -13,7 +13,7 @@
     prim, opcPrefix, oprPrefix, oprInfix, 
     numExp1, numExp2,
     tfm, tfmNoInlineArgs, pn, withInits,
-    double, int, str, verbatim,
+    double, int, str, verbatim, instrIdE,
 
     -- ** Opcodes constructors
     Spec1, spec1, opcs, opcsNoInlineArgs, opr1, opr1k, infOpr, oprBy,
@@ -56,7 +56,10 @@
 withInits :: E -> [E] -> E
 withInits a es = onExp phi a
     where phi x = case x of
+            -- for opcodes with single output
             Tfm t xs -> Tfm t (xs ++ (fmap toPrimOr es))
+            -- for opcodes with multiple outputs
+            Select r n expr -> Select r n $ fmap (\t -> withInits t es) expr
             _        -> x
 
 -- | Converts Haskell's doubles to Csound's doubles
@@ -74,6 +77,11 @@
 verbatim :: Monad m => String -> DepT m ()
 verbatim = stmtOnlyT . Verbatim
 
+instrIdE :: InstrId -> E
+instrIdE x = case x of
+    InstrId Nothing  m -> int m
+    InstrId (Just _) _ -> error "instrId undefined for fractional InstrIds"
+    InstrLabel s -> str s
 ----------------------------------------------------------------------
 -- constructing opcodes
 
