diff --git a/src/Data/Binary/Class.hs b/src/Data/Binary/Class.hs
index a3d3878ce065c4a72282838708c1877640bc5205..975ef7e194d632f3177d6785d4c921436ad15fd5 100644
--- a/src/Data/Binary/Class.hs
+++ b/src/Data/Binary/Class.hs
@@ -9,6 +9,10 @@
 {-# LANGUAGE PolyKinds #-}
 #endif
 
+#if MIN_VERSION_base(4,15,0)
+#define HAS_TYPELITS_CHAR
+#endif
+
 #if MIN_VERSION_base(4,8,0)
 #define HAS_NATURAL
 #define HAS_VOID
@@ -960,11 +964,17 @@ instance Binary KindRep where
 instance Binary TypeLitSort where
     put TypeLitSymbol = putWord8 0
     put TypeLitNat = putWord8 1
+#ifdef HAS_TYPELITS_CHAR
+    put TypeLitChar = putWord8 2 
+#endif
     get = do
         tag <- getWord8
         case tag of
           0 -> pure TypeLitSymbol
           1 -> pure TypeLitNat
+#ifdef HAS_TYPELITS_CHAR
+          2 -> pure TypeLitChar 
+#endif
           _ -> fail "GHCi.TH.Binary.putTypeLitSort: invalid tag"
 
 putTypeRep :: TypeRep a -> Put
@@ -1044,4 +1054,3 @@ instance Binary SomeTypeRep where
     put (SomeTypeRep rep) = putTypeRep rep
     get = getSomeTypeRep
 #endif
-