diff --git a/src/utils/BamTools/src/api/BamAlignment.h b/src/utils/BamTools/src/api/BamAlignment.h
index fb1e8722d9fc70bbc118552e209fba44ef2dbc07..81684ecbfa7790203bcb40aa9ab1f0eb12f073d0 100644
--- a/src/utils/BamTools/src/api/BamAlignment.h
+++ b/src/utils/BamTools/src/api/BamAlignment.h
@@ -29,7 +29,7 @@ namespace Internal {
 //! \endcond
 
 // BamAlignment data structure
-struct API_EXPORT BamAlignment {
+class API_EXPORT BamAlignment {
 
     // constructors & destructor
     public:
diff --git a/src/utils/BamTools/src/api/SamHeader.h b/src/utils/BamTools/src/api/SamHeader.h
index 50049947e627a29f5b077cb719b0c1a7874bb75a..869a3478b655797f014046cc2394585d219da153 100644
--- a/src/utils/BamTools/src/api/SamHeader.h
+++ b/src/utils/BamTools/src/api/SamHeader.h
@@ -19,8 +19,8 @@
 
 namespace BamTools {
 
-struct API_EXPORT SamHeader {
-
+class API_EXPORT SamHeader {
+public:
     // ctor & dtor
     SamHeader(const std::string& headerText = "");
     SamHeader(const SamHeader& other);
diff --git a/src/utils/BamTools/src/api/internal/io/TcpSocketEngine_p.h b/src/utils/BamTools/src/api/internal/io/TcpSocketEngine_p.h
index 9218278b6342de7675528a4fdab0ddc773af9c03..a3153346816c7cf52abaefc941ab96b77e230fe7 100644
--- a/src/utils/BamTools/src/api/internal/io/TcpSocketEngine_p.h
+++ b/src/utils/BamTools/src/api/internal/io/TcpSocketEngine_p.h
@@ -30,7 +30,7 @@
 namespace BamTools {
 namespace Internal {
 
-struct TcpSocketEngine {
+class TcpSocketEngine {
 
     // ctors & dtor
     public:
diff --git a/src/utils/BamTools/src/api/internal/sam/SamHeaderValidator_p.h b/src/utils/BamTools/src/api/internal/sam/SamHeaderValidator_p.h
index 7d0c60aa32e464f1774c882848413d27cd034f8e..3ade4f3b66dd81f15ce9d76cb7ee569789fb2223 100644
--- a/src/utils/BamTools/src/api/internal/sam/SamHeaderValidator_p.h
+++ b/src/utils/BamTools/src/api/internal/sam/SamHeaderValidator_p.h
@@ -27,8 +27,8 @@
 namespace BamTools {
 
 class SamHeader;
-class SamReadGroup;
-class SamSequence;
+struct SamReadGroup;
+struct SamSequence;
 
 namespace Internal {
 
diff --git a/src/utils/FileRecordTools/Records/BamRecord.h b/src/utils/FileRecordTools/Records/BamRecord.h
index 022ecb4d94da5f96133c487e774de7ff4377be00..427fcf4f78237aa021b2cde8c0219357f4b8f201 100644
--- a/src/utils/FileRecordTools/Records/BamRecord.h
+++ b/src/utils/FileRecordTools/Records/BamRecord.h
@@ -23,9 +23,25 @@ public:
 
 	BamRecord();
 	virtual const BamRecord &operator=(const BamRecord &);
+
+
+	// This using statement is only being added to supress warning from the CLANG compiler regarding
+	// hidden overriden methods. Though it makes the base class methods available, developers should
+	// not actually call them on a BamRecord object.
+	using Bed6Interval::initFromFile;
+
+
 	bool initFromFile(FileReader *);
 	virtual bool initFromFile(BamFileReader *);
 	virtual void clear();
+
+
+	// As above, this using statement is only being added to supress warning from the CLANG compiler
+	// regarding hidden overriden methods. Though it makes the base class methods available, developers
+	// should not actually call them on a BamRecord object.
+	using Bed6Interval::print;
+
+
 	virtual void print(QuickString &outBuf, int start, int end, RecordKeyList *keyList) const;
 	virtual void print(QuickString &outBuf, RecordKeyList *keyList) const;
 	virtual void print(QuickString &outBuf, const QuickString & start, const QuickString & end, RecordKeyList *keyList) const;
diff --git a/test/merge/precisionTest.bed b/test/merge/precisionTest.bed
new file mode 100644
index 0000000000000000000000000000000000000000..e9f36f0af0e5d60ba47c8cd952f0cdb2dfd35fe2
--- /dev/null
+++ b/test/merge/precisionTest.bed
@@ -0,0 +1,10 @@
+chr2L	1	54	.	0.05
+chr2L	65	128	.	0.33
+chr2L	129	180	.	0.04
+chr2L	193	259	.	-0.18
+chr2L	257	317	.	-0.07
+chr2L	321	375	.	-0.07
+chr2L	385	448	.	-0.11
+chr2L	449	502	.	0.4
+chr2L	513	570	.	0.48
+chr2L	577	635	.	-0.24
diff --git a/test/merge/test-merge.sh b/test/merge/test-merge.sh
index 051fc12fe2eb25422afb106db8f35908913ac2f9..9cde0cdda4f3b9a6688efcba3b80e55056fc0d95 100644
--- a/test/merge/test-merge.sh
+++ b/test/merge/test-merge.sh
@@ -276,3 +276,20 @@ $BT merge -i a.full.bed > obs
 check exp obs
 rm exp obs
 
+###########################################################
+#  Test that precision is correct
+###########################################################
+echo "    merge.t22...\c"
+echo \
+"chr2L	1	54	0.05
+chr2L	65	128	0.33
+chr2L	129	180	0.04
+chr2L	193	317	-0.125
+chr2L	321	375	-0.07
+chr2L	385	448	-0.11
+chr2L	449	502	0.4
+chr2L	513	570	0.48
+chr2L	577	635	-0.24" > exp
+$BT merge -i precisionTest.bed -c 5 -o mean > obs
+check obs exp
+rm obs exp