diff --git a/CHANGES b/CHANGES
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,7 @@
+Version 0.4.4: released 2009-01-17; changes from 0.4.2
+
+  * Fixes handling of unterminated strings.
+
 Version 0.4.3: released 2009-01-17; changes from 0.4.2
 
   * optimize some common cases..string and int literals.
diff --git a/Text/JSON/String.hs b/Text/JSON/String.hs
--- a/Text/JSON/String.hs
+++ b/Text/JSON/String.hs
@@ -121,7 +121,6 @@
   case x of
        '"' : cs -> parse [] cs
        _        -> fail $ "Malformed JSON: expecting string: " ++ context x
-
  where 
   parse rs cs = 
     case cs of
@@ -131,10 +130,11 @@
       c    : ds
        | c >= '\x20' && c <= '\xff'    -> parse (c:rs) ds
        | c < '\x20'     -> fail $ "Illegal unescaped character in string: " ++ context cs
-       | i <= 0x10fffff -> parse (c:rs) ds
+       | i <= 0x10ffff  -> parse (c:rs) ds
        | otherwise -> fail $ "Illegal unescaped character in string: " ++ context cs
        where
         i = (fromIntegral (fromEnum c) :: Integer)
+      _ -> fail $ "Unable to parse JSON String: unterminated String: " ++ context cs
 
   esc rs c cs = case c of
    '\\' -> parse ('\\' : rs) cs
diff --git a/json.cabal b/json.cabal
--- a/json.cabal
+++ b/json.cabal
@@ -1,5 +1,5 @@
 name:               json
-version:            0.4.3
+version:            0.4.4
 synopsis:           Support for serialising Haskell to and from JSON
 description:
     JSON (JavaScript Object Notation) is a lightweight data-interchange
diff --git a/tests/Makefile b/tests/Makefile
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -5,16 +5,12 @@
 
 all: $(ODIR)
 	ghc -cpp -O QC.hs --make -o QC -no-recomp -i.. -odir=$(ODIR) -hidir=$(ODIR)
-#	time ./QC
-	./QC
+	time ./QC
 	runhaskell -i.. HUnit.hs
 
 generic:	$(ODIR)
 	ghc -i.. --make -fforce-recomp -odir=$(ODIR) -hidir=$(ODIR) GenericTest.hs -o GenericTest
 	./GenericTest
-
-perf:
-	ghc -i.. --make Perf.hs
 
 clean:
 	$(RM) -r $(ODIR)
