diff --git a/samtools.cabal b/samtools.cabal
--- a/samtools.cabal
+++ b/samtools.cabal
@@ -1,5 +1,5 @@
 Name:                samtools
-Version:             0.1.1
+Version:             0.1.2
 Synopsis:            Binding to the C samtools library
 Description:         Binding to the C samtools library, which reads and
                      writes SAM format alignments, both binary and tab-
@@ -10,7 +10,7 @@
 License-file:        LICENSE
 Author:              Nicholas Ingolia
 Maintainer:          nick@ingolia.org
-Category:            Bio
+Category:            Bioinformatics
 Homepage:            http://www.ingolia-lab.org/software/samtools/
 
 Build-type:          Simple
@@ -33,7 +33,7 @@
   Exposed-modules:     Bio.SamTools.Bam, Bio.SamTools.Cigar,
                        Bio.SamTools.BamIndex, Bio.SamTools.FaIdx
   Other-modules:       Bio.SamTools.LowLevel, Bio.SamTools.Internal, C2HS
-  Build-depends:       base >= 4.3 && < 5, bytestring, haskell98, vector >= 0.7, seqloc
+  Build-depends:       base >= 4.2 && < 5, bytestring, haskell98, vector >= 0.7, seqloc
   Hs-Source-Dirs:      src
   Build-tools:         c2hs
   Include-dirs:        samtools-0.1.13, include
@@ -63,7 +63,7 @@
   Other-modules:       Bio.SamTools.Bam, Bio.SamTools.Cigar,
                        Bio.SamTools.BamIndex, Bio.SamTools.FaIdx,
                        Bio.SamTools.LowLevel, Bio.SamTools.Internal, C2HS
-  Build-depends:       base >= 4.3 && < 5, bytestring, haskell98, vector >= 0.7, seqloc, process, filepath
+  Build-depends:       base >= 4.2 && < 5, bytestring, haskell98, vector >= 0.7, seqloc, process, filepath
   Hs-Source-Dirs:      src, test
   Build-tools:         c2hs
   Include-dirs:        samtools-0.1.13, include
diff --git a/src/Bio/SamTools/Bam.hs b/src/Bio/SamTools/Bam.hs
--- a/src/Bio/SamTools/Bam.hs
+++ b/src/Bio/SamTools/Bam.hs
@@ -26,7 +26,7 @@
   , targetID, targetName, targetLen, position
   , isPaired, isProperPair, isUnmap, isMateUnmap, isReverse, isMateReverse
   , isRead1, isRead2, isSecondary, isQCFail, isDup
-  , cigars, queryName, queryLength, querySeq
+  , cigars, queryName, queryLength, querySeq, queryQual
   , mateTargetID, mateTargetName, mateTargetLen, matePosition, insertSize
     
   , nMismatch, nHits, matchDesc                                                               
@@ -52,6 +52,7 @@
 import Control.Exception
 import Control.Monad
 import Data.Bits
+import qualified Data.ByteString as BSW
 import qualified Data.ByteString.Char8 as BS
 import Foreign hiding (new)
 import Foreign.C.Types
@@ -164,6 +165,18 @@
                 | otherwise = return $! Just $! 
                               BS.pack [ seqiToChar . bam1Seqi seqarr $ i | i <- [0..((fromIntegral l)-1)] ]
   in getLQSeq p >>= getQSeq
+     
+-- | 'Just' the query qualities, or 'Nothing' when it is
+-- unavailable. These are returned in ASCII format, i.e., /q/ + 33.
+queryQual :: Bam1 -> Maybe BS.ByteString
+queryQual b = unsafePerformIO $ withForeignPtr (ptrBam1 b) $ \p ->
+  let getQQual l | l < 1 = return Nothing
+                 | otherwise = do q0 <- peek $! bam1Qual p
+                                  if q0 == 0xff
+                                     then return Nothing
+                                     else liftM (Just . BSW.map (+ 33)) $!
+                                            BS.packCStringLen (castPtr $! bam1Qual p, fromIntegral l)
+  in getLQSeq p >>= getQQual
      
 seqiToChar :: CUChar -> Char
 seqiToChar = (chars V.!) . fromIntegral
diff --git a/src/Bio/SamTools/Cigar.hs b/src/Bio/SamTools/Cigar.hs
--- a/src/Bio/SamTools/Cigar.hs
+++ b/src/Bio/SamTools/Cigar.hs
@@ -75,7 +75,7 @@
         entry start (Cigar SoftClip _len) = (start,       Nothing)
         entry start (Cigar HardClip _len) = (start,       Nothing)
         entry start (Cigar Pad      _len) = (start,       Nothing)
-        contig start len = Just $! Loc.fromStartEnd (fromIntegral start) (fromIntegral $ start + len - 1)
+        contig start len = Just $! Loc.fromBoundsStrand (fromIntegral start) (fromIntegral $ start + len - 1) Fwd
 
 mergeAdj :: Loc.ContigLoc -> [Loc.ContigLoc] -> [Loc.ContigLoc]
 mergeAdj cprev [] = [cprev]
