diff --git a/citeproc-hs.cabal b/citeproc-hs.cabal
--- a/citeproc-hs.cabal
+++ b/citeproc-hs.cabal
@@ -1,6 +1,6 @@
 name:               citeproc-hs
-version:            0.3.9
-homepage:           http://gorgias.mine.nu/repos/citeproc-hs/
+version:            0.3.10
+homepage:           http://istitutocolli.org/repos/citeproc-hs/
 synopsis:           A Citation Style Language implementation in Haskell
 
 description:        citeproc-hs is a library for rendering
@@ -112,7 +112,7 @@
                       Text.CSL.Output.Pandoc
                       Text.CSL.Output.Plain
                       Text.CSL.Test
-    other-modules:    Paths_citeproc_hs
+                      Paths_citeproc_hs
     ghc-options:      -funbox-strict-fields -Wall
     ghc-prof-options: -prof -auto-all
     hs-source-dirs:   src
@@ -125,7 +125,7 @@
        cpp-options:     -DUSE_BIBUTILS
 
     if flag(network)
-       build-depends: network >= 2, HTTP >= 4000.0.9
+       build-depends: network >= 2.6, network-uri >= 2.6, HTTP >= 4000.0.9
        extensions:    CPP
        cpp-options:   -DUSE_NETWORK
 
diff --git a/src/Text/CSL/Eval.hs b/src/Text/CSL/Eval.hs
--- a/src/Text/CSL/Eval.hs
+++ b/src/Text/CSL/Eval.hs
@@ -106,8 +106,8 @@
     | Group        fm d l   <- el = when' ((/=) [] <$> tryGroup l) $
                                     return . outputList fm d =<< evalElements l
     | Date     _ _ _  _ _ _ <- el = evalDate el
-    | Label    s f fm _     <- el = formatLabel f fm True s -- FIXME !!
-    | Term     s f fm p     <- el = formatLabel f fm p s
+    | Label    s f fm p     <- el = formatLabel f fm True False s -- FIXME !!
+    | Term     s f fm p     <- el = formatLabel f fm p    True  s
     | Names    s n fm d sub <- el = modify (\st -> st { contNum = [] }) >>
                                     ifEmpty (evalNames False s n d)
                                             (withNames s el $ evalElements sub)
diff --git a/src/Text/CSL/Eval/Names.hs b/src/Text/CSL/Eval/Names.hs
--- a/src/Text/CSL/Eval/Names.hs
+++ b/src/Text/CSL/Eval/Names.hs
@@ -36,7 +36,7 @@
       sb == "editor" && sa == "translator" = do
         aa <- getAgents' sa
         ab <- getAgents' sb
-        if aa == ab
+        if aa /= [] && aa == ab
            then modify (\s -> s { edtrans = True }) >>
                 evalNames True [sa] nl d
            else evalNames True  ns  nl d
@@ -107,7 +107,7 @@
 
     | NameLabel f fm pl <- n = when' (isVarSet s) $ do
         b <- gets edtrans
-        res <- formatLabel f fm (isPlural pl $ length as) $ if b then "editortranslator" else s
+        res <- formatLabel f fm (isPlural pl $ length as) False $ if b then "editortranslator" else s
         modify $ \st -> st { edtrans = False }
         updateEtal [res]
         return res
@@ -320,15 +320,18 @@
                         then w ++     ws
                         else w ++ ' ':ws
 
-formatLabel :: Form -> Formatting -> Bool -> String -> State EvalState [Output]
-formatLabel f fm p s
+formatLabel :: Form -> Formatting -> Bool -> Bool -> String -> State EvalState [Output]
+formatLabel f fm p isTerm s
     | "locator" <- s = when' (gets (citeLocator . cite . env) >>= return . (/=) []) $ do
                        (l,v) <- getLocVar
                        form (\fm' -> return . flip OLoc emptyFormatting . output fm') id l ('-' `elem` v)
     | "page"    <- s = checkPlural
     | "volume"  <- s = checkPlural
     | "ibid"    <- s = format' s p
-    | otherwise      = if isRole s then form (\fm' x -> [OLabel x fm']) id s p else format s p
+    | not isTerm
+    , isRole       s = do a <- getAgents' (if s == "editortranslator" then "editor" else s)
+                          if a /= [] then form (\fm' x -> [OLabel x fm']) id s p else return []
+    | otherwise      = format s p
     where
       isRole = flip elem ["author", "collection-editor", "composer", "container-author"
                          ,"director", "editor", "editorial-director", "editortranslator"
diff --git a/src/Text/CSL/Output/Pandoc.hs b/src/Text/CSL/Output/Pandoc.hs
--- a/src/Text/CSL/Output/Pandoc.hs
+++ b/src/Text/CSL/Output/Pandoc.hs
@@ -23,6 +23,7 @@
     , toCapital
     , startWithPunct
     , endWithPunct
+    , isPunctuationInQuote
     ) where
 
 import Data.Char ( toUpper, toLower )
