diff --git a/cbits/samtools.c b/cbits/samtools.c
--- a/cbits/samtools.c
+++ b/cbits/samtools.c
@@ -16,6 +16,7 @@
 uint32_t bam_fsecondary(void) { return BAM_FSECONDARY; }
 uint32_t bam_fqcfail(void) { return BAM_FQCFAIL; }
 uint32_t bam_fdup(void) { return BAM_FDUP; }
+uint32_t bam_fsupplementary(void) { return BAM_FSUPPLEMENTARY; }
 
 uint32_t bam_cigar_mask(void) { return BAM_CIGAR_MASK; }
 uint32_t bam_cigar_shift(void) { return BAM_CIGAR_SHIFT; }
diff --git a/include/samtools.h b/include/samtools.h
--- a/include/samtools.h
+++ b/include/samtools.h
@@ -17,6 +17,7 @@
 uint32_t bam_fsecondary(void);
 uint32_t bam_fqcfail(void);
 uint32_t bam_fdup(void);
+uint32_t bam_fsupplementary(void);
 
 uint32_t bam_cigar_mask(void);
 uint32_t bam_cigar_shift(void);
diff --git a/samtools-0.1.18/bam.h b/samtools-0.1.18/bam.h
--- a/samtools-0.1.18/bam.h
+++ b/samtools-0.1.18/bam.h
@@ -115,6 +115,8 @@
 #define BAM_FQCFAIL      512
 /*! @abstract optical or PCR duplicate */
 #define BAM_FDUP        1024
+/*! @abstract this is a supplementary read */
+#define BAM_FSUPPLEMENTARY 2048
 
 #define BAM_OFDEC          0
 #define BAM_OFHEX          1
diff --git a/samtools.cabal b/samtools.cabal
--- a/samtools.cabal
+++ b/samtools.cabal
@@ -1,5 +1,5 @@
 Name:                samtools
-Version:             0.2.4.1
+Version:             0.2.4.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-
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
@@ -25,7 +25,7 @@
   , Bam1, header
   , targetID, targetName, targetLen, position
   , isPaired, isProperPair, isUnmap, isMateUnmap, isReverse, isMateReverse
-  , isRead1, isRead2, isSecondary, isQCFail, isDup
+  , isRead1, isRead2, isSecondary, isQCFail, isDup, isSupplementary
   , cigars, queryName, queryLength, querySeq, queryQual
   , mateTargetID, mateTargetName, mateTargetLen, matePosition, insertSize
     
@@ -142,6 +142,10 @@
 -- | Is the read a technical duplicate
 isDup :: Bam1 -> Bool
 isDup = isFlagSet flagDup
+
+-- | Is the read a supplementary read
+isSupplementary :: Bam1 -> Bool
+isSupplementary = isFlagSet flagSupplementary
 
 -- | CIGAR description of the alignment
 cigars :: Bam1 -> [Cigar]
diff --git a/src/Bio/SamTools/LowLevel.chs b/src/Bio/SamTools/LowLevel.chs
--- a/src/Bio/SamTools/LowLevel.chs
+++ b/src/Bio/SamTools/LowLevel.chs
@@ -21,7 +21,7 @@
                              , cigarOp, cigarLength
                              , BamFlag(..)
                              , flagPaired, flagProperPair, flagUnmap, flagMUnmap, flagReverse, flagMReverse
-                             , flagRead1, flagRead2, flagSecondary, flagQCFail, flagDup
+                             , flagRead1, flagRead2, flagSecondary, flagQCFail, flagDup, flagSupplementary
                              , Bam1Ptr, Bam1Int
                              , getTID, getPos, getFlag, getNCigar, getLQSeq, getMTID, getMPos, getISize
                              , bam1Strand, bam1MStrand, bam1Cigar, bam1QName, bam1Seq, bam1Qual, bam1Seqi
@@ -133,6 +133,9 @@
 
 flagDup :: BamFlag
 flagDup = BamFlag {#call pure unsafe bam_fdup#}
+
+flagSupplementary :: BamFlag
+flagSupplementary = BamFlag {#call pure unsafe bam_fsupplementary#}
 
 newtype BamCigar = BamCigar { unBamCigar :: CUInt }
                    deriving (Eq, Show, Ord)
