diff --git a/latex.cabal b/latex.cabal
--- a/latex.cabal
+++ b/latex.cabal
@@ -1,5 +1,5 @@
 Name:             latex
-Version:          0.1.0.1
+Version:          0.1.0.2
 License:          BSD3
 License-File:     LICENSE
 Author:           Henning Thielemann <haskell@henning-thielemann.de>
@@ -26,13 +26,13 @@
   location: http://code.haskell.org/~thielema/latex/
 
 Source-Repository this
-  tag:      0.1.0.1
+  tag:      0.1.0.2
   type:     darcs
   location: http://code.haskell.org/~thielema/latex/
 
 Library
   Build-Depends:
-    containers >= 0.1 && <0.5,
+    containers >= 0.1 && <0.6,
     utility-ht >=0.0.5 && <0.1,
     base >= 3 && <5
 
diff --git a/src/Text/LaTeX/Character.hs b/src/Text/LaTeX/Character.hs
--- a/src/Text/LaTeX/Character.hs
+++ b/src/Text/LaTeX/Character.hs
@@ -5,7 +5,7 @@
    ) where
 
 -- import Data.List.HT (multiReplace, )
-import Data.Tuple.HT (mapSnd, )
+import Data.Tuple.HT (mapFst, mapSnd, )
 import Data.Char (isLetter, chr, ord, )
 import qualified Data.Map as Map
 
@@ -30,15 +30,14 @@
      '\\' ->
        let getArgument "" = ("", "")
            getArgument (a:argsuffix) =
-              if a/='{'
-                then ([a], argsuffix)
-                else
-                  {-
-                  this does not support nested curly braces,
-                  however, I have no argument with braces in my dictionary
-                  -}
-                  let (argstr, suffix) = break ('}'==) argsuffix
-                  in  (argstr, drop 1 suffix)
+              case a of
+                 {-
+                 this does not support nested curly braces,
+                 however, I have no argument with braces in my dictionary
+                 -}
+                 '{' -> mapSnd (drop 1) $ break ('}'==) argsuffix
+                 '\\' -> mapFst ('\\':) $ span isLetter argsuffix
+                 _ -> ([a], argsuffix)
            translateInvocation = do
               (macro,(arg,rest)) <-
                  case cs of
@@ -111,7 +110,7 @@
    Map.fromList
       (do (base, variants) <- accents
           (accent, code) <- variants
-          return (chr code, '\\':accent:'{':base:'}':""))
+          return (chr code, '\\':accent:'{':base++'}':""))
    `Map.union`
    Map.fromList
       (map (\(ident, code) -> (chr code, "\\"++ident++"{}")) specialChars)
@@ -129,7 +128,7 @@
    Map.fromList
       (do (base, variants) <- accents
           (accent, code) <- variants
-          return (([accent], [base]), chr code))
+          return (([accent], base), chr code))
    `Map.union`
    Map.fromList
       (map (\(ident, code) -> ((ident, ""), chr code)) specialChars)
@@ -138,26 +137,29 @@
       (map (\c -> (('\\':c:[], ""), c)) escapedChars)
 
 
-accents :: [(Char, [(Char, Int)])]
+accents :: [(String, [(Char, Int)])]
 accents =
-   ('A', ('`', 192) : ('\'', 193) : ('^', 194) : ('~', 195) : ('"', 196) : []) :
-   ('E', ('`', 200) : ('\'', 201) : ('^', 202) : ('"', 203) : []) :
-   ('I', ('`', 204) : ('\'', 205) : ('^', 206) : ('"', 207) : []) :
-   ('N', ('~', 209) : []) :
-   ('O', ('`', 210) : ('\'', 211) : ('^', 212) : ('~', 213) : ('"', 214) : []) :
-   ('U', ('`', 217) : ('\'', 218) : ('^', 219) : ('"', 220) : []) :
-   ('Y', ('"', 223) : ('\'', 221) : []) :
-   ('C', ('c', 199) : ('\'', 262) : ('^', 264) : ('.', 266) : ('v', 268) : []) :
-   ('S', ('c', 350) : ('\'', 346) : ('^', 348) : ('v', 352) : []) :
-   ('a', ('`', 224) : ('\'', 225) : ('^', 227) : ('"', 228) : []) :
-   ('e', ('`', 232) : ('\'', 233) : ('^', 234) : ('"', 235) : []) :
-   ('i', ('`', 236) : ('\'', 237) : ('^', 238) : ('"', 239) : []) :
-   ('n', ('~', 241) : []) :
-   ('o', ('`', 242) : ('\'', 243) : ('^', 244) : ('~', 245) : ('"', 246) : []) :
-   ('u', ('`', 249) : ('\'', 250) : ('^', 251) : ('"', 252) : []) :
-   ('y', ('"', 255) : ('\'', 253) : []) :
-   ('c', ('c', 231) : ('\'', 263) : ('^', 265) : ('.', 267) : ('v', 269) : []) :
-   ('s', ('c', 351) : ('\'', 347) : ('^', 349) : ('"', 223) : ('v', 353) : []) :
+   ("A", ('`', 192) : ('\'', 193) : ('^', 194) : ('~', 195) : ('"', 196) : []) :
+   ("E", ('`', 200) : ('\'', 201) : ('^', 202) : ('"', 203) : []) :
+   ("I", ('`', 204) : ('\'', 205) : ('^', 206) : ('"', 207) : ('~', 296) : []) :
+   ("J", ('^', 308) : []) :
+   ("N", ('~', 209) : []) :
+   ("O", ('`', 210) : ('\'', 211) : ('^', 212) : ('~', 213) : ('"', 214) : []) :
+   ("U", ('`', 217) : ('\'', 218) : ('^', 219) : ('"', 220) : []) :
+   ("Y", ('"', 223) : ('\'', 221) : []) :
+   ("C", ('c', 199) : ('\'', 262) : ('^', 264) : ('.', 266) : ('v', 268) : []) :
+   ("S", ('c', 350) : ('\'', 346) : ('^', 348) : ('v', 352) : []) :
+   ("a", ('`', 224) : ('\'', 225) : ('^', 227) : ('"', 228) : []) :
+   ("e", ('`', 232) : ('\'', 233) : ('^', 234) : ('"', 235) : []) :
+   ("i", ('`', 236) : ('\'', 237) : ('^', 238) : ('"', 239) : []) :
+   ("\\i", ('`', 236) : ('\'', 237) : ('^', 238) : ('"', 239) : ('~', 297) : []) :
+   ("\\j", ('^', 309) : []) :
+   ("n", ('~', 241) : []) :
+   ("o", ('`', 242) : ('\'', 243) : ('^', 244) : ('~', 245) : ('"', 246) : []) :
+   ("u", ('`', 249) : ('\'', 250) : ('^', 251) : ('"', 252) : []) :
+   ("y", ('"', 255) : ('\'', 253) : []) :
+   ("c", ('c', 231) : ('\'', 263) : ('^', 265) : ('.', 267) : ('v', 269) : []) :
+   ("s", ('c', 351) : ('\'', 347) : ('^', 349) : ('"', 223) : ('v', 353) : []) :
    []
 
 specialChars :: [(String, Int)]
@@ -166,7 +168,6 @@
    ("cC", 199) :
    ("aa", 229) :
    ("AA", 197) :
-   ("i",  239) :
    ("l",  321) :
    ("L",  322) :
    ("ss", 223) :
