diff --git a/elf.cabal b/elf.cabal
--- a/elf.cabal
+++ b/elf.cabal
@@ -1,12 +1,12 @@
 Name:          elf
-Version:       0.26
+Version:       0.27
 License:       BSD3
 License-file:  LICENSE
 Category:      Data
 Author:        Erik Charlebois
 Copyright:     Erik Charlebois
 Maintainer:    Erik Charlebois <erikcharlebois@gmail.com>
-Stability:     unstable
+Stability:     stable
 Cabal-Version: >= 1.6
 Homepage:      http://github.com/erikcharlebois/elf
 Build-Depends: base
diff --git a/src/Data/Elf.hs b/src/Data/Elf.hs
--- a/src/Data/Elf.hs
+++ b/src/Data/Elf.hs
@@ -718,7 +718,7 @@
 infoToTypeAndBind :: Word8 -> (ElfSymbolType,ElfSymbolBinding)
 infoToTypeAndBind i =
     let t = fromIntegral $ i .&. 0x0F
-        b = fromIntegral $ (i .&. 0xF) `shiftR` 4
+        b = fromIntegral $ (i .&. 0xF0) `shiftR` 4
     in (toEnum t, toEnum b)
 
 data ElfSymbolBinding
@@ -753,6 +753,8 @@
     | STTFunc
     | STTSection
     | STTFile
+    | STTCommon
+    | STTTLS
     | STTLoOS
     | STTHiOS
     | STTLoProc
@@ -765,6 +767,8 @@
     fromEnum STTFunc    = 2
     fromEnum STTSection = 3
     fromEnum STTFile    = 4
+    fromEnum STTCommon  = 5
+    fromEnum STTTLS     = 6
     fromEnum STTLoOS    = 10
     fromEnum STTHiOS    = 12
     fromEnum STTLoProc  = 13
@@ -774,6 +778,8 @@
     toEnum  2 = STTFunc
     toEnum  3 = STTSection
     toEnum  4 = STTFile
+    toEnum  5 = STTCommon
+    toEnum  6 = STTTLS
     toEnum 10 = STTLoOS
     toEnum 12 = STTHiOS
     toEnum 13 = STTLoProc
