diff --git a/generic-xmlpickler.cabal b/generic-xmlpickler.cabal
--- a/generic-xmlpickler.cabal
+++ b/generic-xmlpickler.cabal
@@ -1,5 +1,5 @@
 name:                generic-xmlpickler
-version:             0.1.0.3
+version:             0.1.0.4
 description:         Generic generation of HXT XmlPickler instances using GHC Generics.
 synopsis:            Generic generation of HXT XmlPickler instances using GHC Generics.
 category:            XML, Data
@@ -27,7 +27,7 @@
   exposed-modules:   Generics.XmlPickler
   build-depends:
       base >= 4.5 && < 4.9
-    , generic-deriving >= 1.6 && < 1.9
+    , generic-deriving >= 1.6 && < 1.10
     , hxt >= 9.2 && < 9.4
     , text
   if impl(ghc < 7.6)
@@ -43,7 +43,7 @@
     , generic-xmlpickler
     , hxt >= 9.2 && < 9.4
     , hxt-pickle-utils == 0.1.*
-    , tasty == 0.10.*
+    , tasty >= 0.10 && < 0.12
     , tasty-hunit == 0.9.*
     , tasty-th == 0.1.*
   if impl(ghc < 7.6)
diff --git a/src/Generics/XmlPickler.hs b/src/Generics/XmlPickler.hs
--- a/src/Generics/XmlPickler.hs
+++ b/src/Generics/XmlPickler.hs
@@ -153,9 +153,9 @@
 
 stripTrailingUnderscore :: String -> String
 stripTrailingUnderscore s = case s of
-  ""         -> ""
-  (x:'_':[]) -> [x]
-  (x:xs)     -> x : stripTrailingUnderscore xs
+  ""      -> ""
+  [x,'_'] -> [x]
+  (x:xs)  -> x : stripTrailingUnderscore xs
 
 optElem :: forall a s (t :: * -> (* -> *) -> * -> *) (f :: * -> *) b. Selector s => PU a -> t s f b -> PU a
 optElem x y = case formatElement (selName y) of
