diff --git a/plugins-multistage.cabal b/plugins-multistage.cabal
--- a/plugins-multistage.cabal
+++ b/plugins-multistage.cabal
@@ -1,5 +1,5 @@
 name:           plugins-multistage
-version:        0.4
+version:        0.4.0.1
 synopsis:       Dynamic linking for embedded DSLs with staged compilation
 description:    Dynamic compilation, linking and loading of functions in
                 staged languages.
diff --git a/src/System/Plugins/MultiStage.hs b/src/System/Plugins/MultiStage.hs
--- a/src/System/Plugins/MultiStage.hs
+++ b/src/System/Plugins/MultiStage.hs
@@ -55,6 +55,7 @@
                      , prefix       :: String
                      , wdir         :: String
                      , opts         :: [String]
+                     , safety       :: Safety
                      }
 
 defaultConfig :: Config
@@ -67,6 +68,7 @@
                        , prefix       = "c_"
                        , wdir         = "tmp"
                        , opts         = []
+                       , safety       = unsafe
                        }
 
 noBuilder :: Config -> Name -> Q Body
@@ -101,7 +103,7 @@
 
 declareWorker :: Config -> Name -> Name -> [Name] -> Type -> [DecQ]
 declareWorker conf@Config{..} wname name as typ =
-    [ declareImport factory csig
+    [ declareImport conf factory csig
     , sigD bname $ appT [t|Ptr|] csig
     , funD bname [clause [] (builder conf name) []]
     , sigD rname csig
@@ -123,9 +125,9 @@
     , funD cname [clause (map varP as) (wrapper wname as) [] ]
     ]
 
-declareImport :: Name -> TypeQ -> DecQ
-declareImport name csig =
-    forImpD cCall safe "dynamic" name [t|FunPtr $(csig) -> $(csig)|]
+declareImport :: Config -> Name -> TypeQ -> DecQ
+declareImport Config{..} name csig =
+    forImpD cCall safety "dynamic" name [t|FunPtr $(csig) -> $(csig)|]
 
 wrapper :: Name -> [Name] -> Q Body
 wrapper workername args = normalB
