diff --git a/src/sortBed/sortBed.cpp b/src/sortBed/sortBed.cpp
index dc79612d1fa650bd90e1949684e4fc3bae136ea0..9b0990f5ab4b3f259a2a29807f88822682a3d4c4 100755
--- a/src/sortBed/sortBed.cpp
+++ b/src/sortBed/sortBed.cpp
@@ -18,8 +18,6 @@
 BedSort::BedSort(string &bedFile) {
 	_bedFile = bedFile;
 	_bed = new BedFile(bedFile);
-	
-	SortBed();
 }
 
 //
diff --git a/src/utils/bedFile/bedFile.cpp b/src/utils/bedFile/bedFile.cpp
index e8e8bf456b837cbd7f89eb6924f827fa94f21dee..38e2ce9def4a3321c9fe93858af219792b87687a 100755
--- a/src/utils/bedFile/bedFile.cpp
+++ b/src/utils/bedFile/bedFile.cpp
@@ -702,6 +702,12 @@ void BedFile::loadBedFileIntoMapNoBin() {
 		bedStatus = this->GetNextBed(bedEntry, lineNum);	
 	}
 	Close();
+	
+	// sort the BED entries for each chromosome
+	// in ascending order of start position
+	for (masterBedMapNoBin::iterator m = this->bedMapNoBin.begin(); m != this->bedMapNoBin.end(); ++m) {
+		sort(m->second.begin(), m->second.end(), sortByStart);		
+	}
 }