diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,8 +1,12 @@
 <!-- -*- Markdown -*- -->
 
+## 0.10.1.1
+
+- fix overloaded-labels instances for GHC 8.2.
+
 ## 0.10.1.0
 
-- add overloaded projections.
+- define projections with overloaded-labels.
 - add a portable sequence number operation.
 
 ## 0.10.0.0
diff --git a/relational-query.cabal b/relational-query.cabal
--- a/relational-query.cabal
+++ b/relational-query.cabal
@@ -1,5 +1,5 @@
 name:                relational-query
-version:             0.10.1.0
+version:             0.10.1.1
 synopsis:            Typeful, Modular, Relational, algebraic query engine
 description:         This package contiains typeful relation structure and
                      relational-algebraic query building DSL which can
diff --git a/src/Database/Relational/OverloadedProjection.hs b/src/Database/Relational/OverloadedProjection.hs
--- a/src/Database/Relational/OverloadedProjection.hs
+++ b/src/Database/Relational/OverloadedProjection.hs
@@ -38,14 +38,25 @@
 class HasProjection l a b | l a -> b where
   projection :: PiLabel l -> Pi a b
 
+#if __GLASGOW_HASKELL__ >= 802
 -- | Derive 'IsLabel' instance from 'HasProjection'.
 instance HasProjection l a b => IsLabel l (Pi a b) where
+  fromLabel = projection (GetPi :: PiLabel l)
+
+-- | Derive 'PI' label.
+instance (PersistableWidth a, HasProjection l a b)
+          => IsLabel l (PI c a b) where
+  fromLabel = (! projection (GetPi :: PiLabel l))
+#else
+-- | Derive 'IsLabel' instance from 'HasProjection'.
+instance HasProjection l a b => IsLabel l (Pi a b) where
   fromLabel _ = projection (GetPi :: PiLabel l)
 
 -- | Derive 'PI' label.
-instance (PersistableWidth a, IsLabel l (Pi a b))
+instance (PersistableWidth a, HasProjection l a b)
           => IsLabel l (PI c a b) where
-  fromLabel s = (! fromLabel s)
+  fromLabel _ = (! projection (GetPi :: PiLabel l))
+#endif
 #else
 module Database.Relational.OverloadedProjection () where
 #endif
