diff --git a/paragon.cabal b/paragon.cabal
--- a/paragon.cabal
+++ b/paragon.cabal
@@ -1,5 +1,5 @@
 Name:                   paragon
-Version:                0.1.23
+Version:                0.1.24
 License:                BSD3
 License-File:           LICENSE
 Author:                 Niklas Broberg
diff --git a/src/Language/Java/Paragon/Interaction.hs b/src/Language/Java/Paragon/Interaction.hs
--- a/src/Language/Java/Paragon/Interaction.hs
+++ b/src/Language/Java/Paragon/Interaction.hs
@@ -49,7 +49,7 @@
 issueTracker = "http://code.google.com/p/paragon-java/issues/entry"
 
 versionString :: String
-versionString = "0.1.23"
+versionString = "0.1.24"
 
 libraryBase, typeCheckerBase :: String
 libraryBase = "Language.Java.Paragon"
diff --git a/src/Language/Java/Paragon/TypeCheck/TcExp.hs b/src/Language/Java/Paragon/TypeCheck/TcExp.hs
--- a/src/Language/Java/Paragon/TypeCheck/TcExp.hs
+++ b/src/Language/Java/Paragon/TypeCheck/TcExp.hs
@@ -54,7 +54,9 @@
                        
 
 -- Rule LIT
-tcExp (Lit _ l) = let ty = stateType $ litType l in return (ty, bottom, Lit (toT ty) (notAppl l))
+tcExp (Lit _ l) = do
+  sty <- getStateType Nothing Nothing $ litType l 
+  return (sty, bottom, Lit (toT sty) (notAppl l))
 
 -- Rule THIS
 tcExp (This _) = do
@@ -707,8 +709,8 @@
 -- First the special cases: policy operators, and String conversion
 opType (Mult _) (TcPolicyPolT p1) (TcPolicyPolT p2) = return (TcPolicyPolT (p1 `join` p2))
 opType (Add  _) (TcPolicyPolT p1) (TcPolicyPolT p2) = return (TcPolicyPolT (p1 `meet` p2))
-opType (Add  _) t1 t2 | let sT = stateType (clsTypeToType stringT),
-                        t1 == sT || t2 == sT = return sT
+opType (Add  _) t1 t2 | let sT = clsTypeToType stringT,
+                        unStateType t1 == sT || unStateType t2 == sT = getStateType Nothing Nothing sT
 
 opType op t1 t2
     -- Numeric operators
