diff --git a/src/sampleFile/SampleFile.cpp b/src/sampleFile/SampleFile.cpp
index 8f532c5f47a8eb89da81fac4d5c3a35f15a17187..8291824cef1cb5a67d7827c9bf0e867b7df4f48f 100644
--- a/src/sampleFile/SampleFile.cpp
+++ b/src/sampleFile/SampleFile.cpp
@@ -35,11 +35,7 @@ SampleFile::~SampleFile() {
 bool SampleFile::takeSample()
 {
 	//we're only operating on one file, so the idx is zero.
-	_inputFile = new FileRecordMgr(0, _context);
-	if (!_inputFile->open()) {
-		return false; // FRM will give the error and die anyway,
-		//no error message needed here.
-	}
+	_inputFile =  _context->getFile(0);
 	_samples.resize(_numSamples, NULL);
 
 
@@ -50,7 +46,6 @@ bool SampleFile::takeSample()
 		_context->getUnspecifiedSeed();
 	}
 
-	_context->determineOutputType();
 	_outputMgr = new RecordOutputMgr();
 	_outputMgr->init(_context);
 
@@ -82,10 +77,6 @@ bool SampleFile::takeSample()
 	}
 	delete _outputMgr;
 	_inputFile->close();
-
-	//clean up.
-	delete _inputFile;
-
 	return true;
 }
 
diff --git a/src/utils/FileRecordTools/FileReaders/BamFileReader.cpp b/src/utils/FileRecordTools/FileReaders/BamFileReader.cpp
index a9d129d75f9fb3904ef4f7e06b0211842d2607a9..ab717f921236e17c8610e683a91c843b628c1736 100644
--- a/src/utils/FileRecordTools/FileReaders/BamFileReader.cpp
+++ b/src/utils/FileRecordTools/FileReaders/BamFileReader.cpp
@@ -4,44 +4,17 @@
 BamFileReader::BamFileReader()
 :  _bamReader(NULL),
    _eof(false),
-   _useTags(true),
-   _shouldDeleteBamReader(false)
+   _useTags(true)
 {
 
 }
 
 BamFileReader::~BamFileReader()
 {
-	if (_bamReader != NULL && _shouldDeleteBamReader) {
-		delete _bamReader;
-		_shouldDeleteBamReader = false;
-		_bamReader = NULL;
-	}
 }
 
 bool BamFileReader::open()
 {
-//	if (_bamReader == NULL) {
-//		_bamReader = new BamTools::BamReader();
-//		_shouldDeleteBamReader = true;
-//	}
-//	if (_inputStream != NULL) {
-//		try {
-//			_bamReader->OpenStream(_inputStream);
-//		}
-//		catch (...) {
-//			fprintf(stderr, "ERROR: Unable to open BAM file from standard input.\n");
-//			exit(1);
-//		}
-//	} else {
-//		try {
-//			_bamReader->Open(_filename);
-//		}
-//		catch (...) {
-//			fprintf(stderr, "ERROR: Unable to open BAM file %s\n", _filename.c_str());
-//			exit(1);
-//		}
-//	}
     _bamHeader = _bamReader->GetHeaderText();
     _references = _bamReader->GetReferenceData();
 
diff --git a/src/utils/FileRecordTools/FileReaders/BamFileReader.h b/src/utils/FileRecordTools/FileReaders/BamFileReader.h
index e9861b9e93ccc28bdf7347bec90af23165284a02..8bea945ed8b1bdbecfaec9e8e20d82bf6e26f295 100644
--- a/src/utils/FileRecordTools/FileReaders/BamFileReader.h
+++ b/src/utils/FileRecordTools/FileReaders/BamFileReader.h
@@ -58,7 +58,6 @@ protected:
 	QuickString _bamHeader;
 	BamTools::RefVector _references;
 	bool _useTags;
-	bool _shouldDeleteBamReader;
 
 	static const int MINIMUM_PRINTABLE_BAM_FIELDS = 6;
 	void extractNameFromCore();
diff --git a/src/utils/FileRecordTools/FileReaders/BufferedStreamMgr.cpp b/src/utils/FileRecordTools/FileReaders/BufferedStreamMgr.cpp
index 55ec8865e0745c90f7d80a5b93b48b07d0f4fc74..27f07894c347c2b871201f933287ed410c555bd0 100644
--- a/src/utils/FileRecordTools/FileReaders/BufferedStreamMgr.cpp
+++ b/src/utils/FileRecordTools/FileReaders/BufferedStreamMgr.cpp
@@ -26,13 +26,11 @@ BufferedStreamMgr::BufferedStreamMgr(const QuickString &filename)
 BufferedStreamMgr::~BufferedStreamMgr()
 {
 
-	if (_mainBuf != NULL) {
-		delete [] _mainBuf;
-	}
-	if (_inputStreamMgr != NULL) {
-		delete _inputStreamMgr;
-		_inputStreamMgr = NULL;
-	}
+	delete [] _mainBuf;
+	_mainBuf = NULL;
+
+	delete _inputStreamMgr;
+	_inputStreamMgr = NULL;
 }
 
 bool BufferedStreamMgr::init()
diff --git a/src/utils/FileRecordTools/FileReaders/InputStreamMgr.cpp b/src/utils/FileRecordTools/FileReaders/InputStreamMgr.cpp
index 5b1d0a9c10831dcfc123efe560ec86acf4fbac3b..2035b9c6529e8ac97f53766b22c2fd98c8eba56b 100644
--- a/src/utils/FileRecordTools/FileReaders/InputStreamMgr.cpp
+++ b/src/utils/FileRecordTools/FileReaders/InputStreamMgr.cpp
@@ -35,38 +35,29 @@ InputStreamMgr::InputStreamMgr(const QuickString &filename, bool buildScanBuffer
 
 
 InputStreamMgr::~InputStreamMgr() {
-	if (_pushBackStreamBuf != NULL) {
-		delete _pushBackStreamBuf;
-		_pushBackStreamBuf = NULL;
-	}
-	if (_inputFileStream != NULL) {
-		delete _inputFileStream;
-		_inputFileStream = NULL;
-	}
-	if (_oldInputStream != NULL) {
-		delete _oldInputStream;
-		_oldInputStream = NULL;
-	}
-	if (_infStreamBuf != NULL) {
-		delete _infStreamBuf;
-		_infStreamBuf = NULL;
-	}
-	if (_bamReader != NULL) {
-		delete _bamReader;
-		_bgStream = NULL;
-	}
-	if (_bgStream != NULL) {
-		delete _bgStream;
-		_bgStream = NULL;
-	}
-	if (_finalInputStream != NULL) {
-		delete _finalInputStream;
-		_finalInputStream = NULL;
-	}
-	if (_tmpZipBuf != NULL) {
-		delete [] _tmpZipBuf;
-		_tmpZipBuf = NULL;
-	}
+	delete _pushBackStreamBuf;
+	_pushBackStreamBuf = NULL;
+
+	delete _inputFileStream;
+	_inputFileStream = NULL;
+
+	delete _oldInputStream;
+	_oldInputStream = NULL;
+
+	delete _infStreamBuf;
+	_infStreamBuf = NULL;
+
+	delete _bamReader;
+	_bgStream = NULL;
+
+	delete _bgStream;
+	_bgStream = NULL;
+
+	delete _finalInputStream;
+	_finalInputStream = NULL;
+
+	delete [] _tmpZipBuf;
+	_tmpZipBuf = NULL;
 }
 
 bool InputStreamMgr::init()
@@ -98,7 +89,6 @@ bool InputStreamMgr::init()
 	//now we have a PushBackStreamBuf. Make a new stream.
 	_finalInputStream = new istream(_pushBackStreamBuf);
 	populateScanBuffer();
-//	resetStream();
 	return true;
 }
 
@@ -240,9 +230,7 @@ bool InputStreamMgr::detectBamOrBgzip(int &numChars, int currChar)
 			_bamRuledOut = true;
 			_numBytesInBuffer = 0;
 			_infStreamBuf = new InflateStreamBuf(_finalInputStream);
-			if (_oldInputStream != NULL) {
-				delete _oldInputStream;
-			}
+			delete _oldInputStream;
 			_oldInputStream = _finalInputStream;
 			_finalInputStream = new istream(_infStreamBuf);
 			return false;
@@ -251,23 +239,6 @@ bool InputStreamMgr::detectBamOrBgzip(int &numChars, int currChar)
 	return false;
 }
 
-//void InputStreamMgr::decompressBuffer()
-//{
-//	//allocate an array to hold uncompressed data.
-//	_saveDataStr.clear();
-//	uInt maxDecompressSize = 20 * _numBytesInBuffer;
-//	unsigned char *newScanBuffer = new unsigned char[maxDecompressSize];
-//	memset(newScanBuffer, 0, maxDecompressSize);
-//
-//	unsigned int numDecompressChars = inflateGzippedArray(_scanBuffer, newScanBuffer, maxDecompressSize, _numBytesInBuffer);
-//
-//	// newScanBuffer should now contain uncompressed data.
-//	//delete old buffer, point it at new buffer.
-//	_saveDataStr.append((char *)newScanBuffer, numDecompressChars);
-//
-//	delete [] newScanBuffer;
-//}
-
 void InputStreamMgr::readZipChunk()
 {
 	if (_tmpZipBuf == NULL) {
diff --git a/src/utils/FileRecordTools/FileReaders/SingleLineDelimTextFileReader.cpp b/src/utils/FileRecordTools/FileReaders/SingleLineDelimTextFileReader.cpp
index 12739abe41b42c9412c989387e846cd5464eaf01..38074edf3513817e7413cf4426269fe618d84b7d 100644
--- a/src/utils/FileRecordTools/FileReaders/SingleLineDelimTextFileReader.cpp
+++ b/src/utils/FileRecordTools/FileReaders/SingleLineDelimTextFileReader.cpp
@@ -16,6 +16,7 @@ SingleLineDelimTextFileReader::SingleLineDelimTextFileReader(int numFields, char
 SingleLineDelimTextFileReader::~SingleLineDelimTextFileReader()
 {
 	delete [] _delimPositions;
+	_delimPositions = NULL;
 }
 
 bool SingleLineDelimTextFileReader::readEntry()
diff --git a/src/utils/FileRecordTools/FileRecordMgr.cpp b/src/utils/FileRecordTools/FileRecordMgr.cpp
index 8b3c2cadcf79609ace299dec0b3d3b5d999d63bd..38fc056b483236611748943ebcce4a7228f0a95f 100644
--- a/src/utils/FileRecordTools/FileRecordMgr.cpp
+++ b/src/utils/FileRecordTools/FileRecordMgr.cpp
@@ -30,19 +30,15 @@ FileRecordMgr::FileRecordMgr(const QuickString &filename, bool isSorted)
 
 FileRecordMgr::~FileRecordMgr(){
 
-	if (_bufStreamMgr != NULL) {
-		delete _bufStreamMgr;
-		_bufStreamMgr = NULL;
-	}
-	if (_fileReader != NULL) {
-		close(); //just make sure file was closed.
-		delete _fileReader;
-		_fileReader = NULL;
-	}
-	if (_recordMgr != NULL) {
-		delete _recordMgr;
-		_recordMgr = NULL;
-	}
+	delete _bufStreamMgr;
+	_bufStreamMgr = NULL;
+
+	close(); //just make sure file was closed.
+	delete _fileReader;
+	_fileReader = NULL;
+
+	delete _recordMgr;
+	_recordMgr = NULL;
 }
 
 bool FileRecordMgr::open(){
@@ -78,10 +74,9 @@ bool FileRecordMgr::open(){
 }
 
 void FileRecordMgr::close(){
-	if (_bufStreamMgr != NULL) {
-		delete _bufStreamMgr;
-		_bufStreamMgr = NULL;
-	}
+	delete _bufStreamMgr;
+	_bufStreamMgr = NULL;
+
 	if (_fileReader != NULL) {
 		_fileReader->close();
 		delete _fileReader;
@@ -91,7 +86,6 @@ void FileRecordMgr::close(){
 
 bool FileRecordMgr::eof(){
 	return _fileReader->eof();
-//	return _storedRecords.empty() && _fileReader->eof() ? true:  false;
 }
 
 Record *FileRecordMgr::allocateAndGetNextRecord()
@@ -109,8 +103,9 @@ Record *FileRecordMgr::allocateAndGetNextRecord()
 		return NULL;
 	}
 
-	// In the rare case of Bam records where both the read and it's mate failed to map,
-	// Ignore the record. Delete and return null.
+	// If the record is unmapped, don't test for valid coords or sort order,
+	// but still return it so the -v (noHit) option and the like will still
+	// see it.
 
 	if (!record->isUnmapped()) {
 		if (!record->coordsValid()) {
diff --git a/src/utils/NewChromsweep/NewChromsweep.cpp b/src/utils/NewChromsweep/NewChromsweep.cpp
index 14e9a908f0dbfbc425718956af0afa50964ebd61..5e6045be625799cca515ac056e9a17b33f1908a6 100644
--- a/src/utils/NewChromsweep/NewChromsweep.cpp
+++ b/src/utils/NewChromsweep/NewChromsweep.cpp
@@ -68,12 +68,12 @@ NewChromSweep::~NewChromSweep(void) {
 	if (!_wasInitialized) {
 		return;
 	}
-	if (_currQueryRec != NULL) {
-		_queryFRM->deleteRecord(_currQueryRec);
-	}
-	if (_currDatabaseRec != NULL) {
-		_databaseFRM->deleteRecord(_currDatabaseRec);
-	}
+	_queryFRM->deleteRecord(_currQueryRec);
+	_currQueryRec = NULL;
+
+	_databaseFRM->deleteRecord(_currDatabaseRec);
+	_currDatabaseRec = NULL;
+
 	_queryFRM->close();
 	_databaseFRM->close();
 }