diff --git a/src/closestBed/closestMain.cpp b/src/closestBed/closestMain.cpp
index 4ae7ae5dec7a72d491367094a3e6d4ef9306a1d0..d72fa759855bf11fafee7ce93d3134d577f77bac 100755
--- a/src/closestBed/closestMain.cpp
+++ b/src/closestBed/closestMain.cpp
@@ -59,22 +59,28 @@ int main(int argc, char* argv[]) {
 		int parameterLength = (int)strlen(argv[i]);
 
 		if(PARAMETER_CHECK("-a", 2, parameterLength)) {
-			haveBedA = true;
-			bedAFile = argv[i + 1];
-			i++;
+			if ((i+1) < argc) {
+				haveBedA = true;
+				bedAFile = argv[i + 1];
+				i++;
+			}
 		}
 		else if(PARAMETER_CHECK("-b", 2, parameterLength)) {
-			haveBedB = true;
-			bedBFile = argv[i + 1];
-			i++;
+			if ((i+1) < argc) {
+				haveBedB = true;
+				bedBFile = argv[i + 1];
+				i++;
+			}
 		}
 		else if (PARAMETER_CHECK("-s", 2, parameterLength)) {
 			forceStrand = true;
 		}
 		else if (PARAMETER_CHECK("-t", 2, parameterLength)) {
-			haveTieMode = true;
-			tieMode = argv[i + 1];
-			i++;
+			if ((i+1) < argc) {
+				haveTieMode = true;
+				tieMode = argv[i + 1];
+				i++;
+			}
 		}	
 	}
 
diff --git a/src/complementBed/complementMain.cpp b/src/complementBed/complementMain.cpp
index 8f36b672047b6516df5fb71a58132781a3285163..f8407872179a3b03678e8da74f0bc37e7b0b826e 100755
--- a/src/complementBed/complementMain.cpp
+++ b/src/complementBed/complementMain.cpp
@@ -56,14 +56,18 @@ int main(int argc, char* argv[]) {
 		int parameterLength = (int)strlen(argv[i]);
 
  		if(PARAMETER_CHECK("-i", 2, parameterLength)) {
-			haveBed = true;
-			bedFile = argv[i + 1];
-			i++;
+			if ((i+1) < argc) {
+				haveBed = true;
+				bedFile = argv[i + 1];
+				i++;
+			}
 		}
 		else if(PARAMETER_CHECK("-g", 2, parameterLength)) {
-			haveGenome = true;
-			genomeFile = argv[i + 1];
-			i++;
+			if ((i+1) < argc) {
+				haveGenome = true;
+				genomeFile = argv[i + 1];
+				i++;
+			}
 		}
 		else {
 		  cerr << endl << "*****ERROR: Unrecognized parameter: " << argv[i] << " *****" << endl << endl;
diff --git a/src/coverageBed/coverageMain.cpp b/src/coverageBed/coverageMain.cpp
index 4ae9c55eeea3f0f175d4485f7ade762b20e23abd..db41fc284eb22f5aff31e464e41a33249b322069 100755
--- a/src/coverageBed/coverageMain.cpp
+++ b/src/coverageBed/coverageMain.cpp
@@ -57,14 +57,18 @@ int main(int argc, char* argv[]) {
 		int parameterLength = (int)strlen(argv[i]);
 
 		if(PARAMETER_CHECK("-a", 2, parameterLength)) {
-			haveBedA = true;
-			bedAFile = argv[i + 1];
-			i++;
+			if ((i+1) < argc) {
+				haveBedA = true;
+				bedAFile = argv[i + 1];
+				i++;
+			}
 		}
 		else if(PARAMETER_CHECK("-b", 2, parameterLength)) {
-			haveBedB = true;
-			bedBFile = argv[i + 1];
-			i++;
+			if ((i+1) < argc) {
+				haveBedB = true;
+				bedBFile = argv[i + 1];
+				i++;
+			}
 		}
 		else if (PARAMETER_CHECK("-s", 2, parameterLength)) {
 			forceStrand = true;
diff --git a/src/fastaFromBed/fastaFromBedMain.cpp b/src/fastaFromBed/fastaFromBedMain.cpp
index d536809ed33d19b60e5b6905303210b78bee6020..5d48d80c1e9c17000e13b3590faaf30d2ff096a1 100755
--- a/src/fastaFromBed/fastaFromBedMain.cpp
+++ b/src/fastaFromBed/fastaFromBedMain.cpp
@@ -63,19 +63,25 @@ int main(int argc, char* argv[]) {
 		int parameterLength = (int)strlen(argv[i]);
 
 		if(PARAMETER_CHECK("-fi", 3, parameterLength)) {
-			haveFastaDb = true;
-			fastaDbFile = argv[i + 1];
-			i++;
+			if ((i+1) < argc) {
+				haveFastaDb = true;
+				fastaDbFile = argv[i + 1];
+				i++;
+			}
 		} 
 		else if(PARAMETER_CHECK("-fo", 3, parameterLength)) {
-			haveFastaOut = true;
-			fastaOutFile = argv[i + 1];
-			i++;
+			if ((i+1) < argc) {
+				haveFastaOut = true;
+				fastaOutFile = argv[i + 1];
+				i++;
+			}
 		} 
 		else if(PARAMETER_CHECK("-bed", 4, parameterLength)) {
-			haveBed = true;
-			bedFile = argv[i + 1];
-			i++;
+			if ((i+1) < argc) {
+				haveBed = true;
+				bedFile = argv[i + 1];
+				i++;
+			}
 		}
 		else if(PARAMETER_CHECK("-name", 5, parameterLength)) {
 			useNameOnly = true;
diff --git a/src/genomeCoverageBed/genomeCoverageMain.cpp b/src/genomeCoverageBed/genomeCoverageMain.cpp
index 5befca26c8df54b38cfabde7d9d6c47f09670777..88cbdea0815841f06bbcef8d2983939c2e23d3e6 100755
--- a/src/genomeCoverageBed/genomeCoverageMain.cpp
+++ b/src/genomeCoverageBed/genomeCoverageMain.cpp
@@ -59,25 +59,27 @@ int main(int argc, char* argv[]) {
 		int parameterLength = (int)strlen(argv[i]);
 
  		if(PARAMETER_CHECK("-i", 2, parameterLength)) {
-			haveBed = true;
-			bedFile = argv[i + 1];
-			i++;
+			if ((i+1) < argc) {
+				haveBed = true;
+				bedFile = argv[i + 1];
+				i++;
+			}
 		}
 		else if(PARAMETER_CHECK("-g", 2, parameterLength)) {
-			haveGenome = true;
-			genomeFile = argv[i + 1];
-			i++;
+			if ((i+1) < argc) {
+				haveGenome = true;
+				genomeFile = argv[i + 1];
+				i++;
+			}
 		}	
 		else if(PARAMETER_CHECK("-d", 2, parameterLength)) {
 			eachBase = true;
 		}
-		//else if(PARAMETER_CHECK("-s", 2, parameterLength)) {
-		//	startSites = true;
-		//	i++;
-		//}
 		else if(PARAMETER_CHECK("-max", 4, parameterLength)) {
-			max = atoi(argv[i + 1]);
-			i++;
+			if ((i+1) < argc) {
+				max = atoi(argv[i + 1]);
+				i++;
+			}
 		}
 		else {
 		  cerr << endl << "*****ERROR: Unrecognized parameter: " << argv[i] << " *****" << endl << endl;
diff --git a/src/intersectBed/intersectMain.cpp b/src/intersectBed/intersectMain.cpp
index f623262f054edd107036fda1f3f0f27d5294cfa4..270986945e2570e1c87543da54cef4c60350ec84 100755
--- a/src/intersectBed/intersectMain.cpp
+++ b/src/intersectBed/intersectMain.cpp
@@ -73,23 +73,23 @@ int main(int argc, char* argv[]) {
 				haveBedA = true;
 				outputIsBam = false;
 				bedAFile = argv[i + 1];
+				i++;
 			}
-			i++;
 		}
 		else if(PARAMETER_CHECK("-abam", 5, parameterLength)) {
 			if ((i+1) < argc) {
 				haveBedA = true;
 				inputIsBam = true;
-				bedAFile = argv[i + 1];			
-			}
-			i++;
+				bedAFile = argv[i + 1];
+				i++;		
+			}	
 		}
 		else if(PARAMETER_CHECK("-b", 2, parameterLength)) {
 			if ((i+1) < argc) {
 				haveBedB = true;
 				bedBFile = argv[i + 1];
+				i++;
 			}
-			i++;
 		}
 		else if(PARAMETER_CHECK("-bed", 4, parameterLength)) {
 			outputIsBam = false;
@@ -98,9 +98,11 @@ int main(int argc, char* argv[]) {
 			anyHit = true;
 		}
 		else if(PARAMETER_CHECK("-f", 2, parameterLength)) {
-			haveFraction = true;
-			overlapFraction = atof(argv[i + 1]);
-			i++;
+			if ((i+1) < argc) {
+				haveFraction = true;
+				overlapFraction = atof(argv[i + 1]);
+				i++;
+			}
 		}
 		else if(PARAMETER_CHECK("-wa", 3, parameterLength)) {
 			writeA = true;
diff --git a/src/linksBed/linksMain.cpp b/src/linksBed/linksMain.cpp
index 267f8aeb3458925967117c8699d96d1cc22c73be..f5b8ea2a64df05de62dd4778a006ac11173e327f 100755
--- a/src/linksBed/linksMain.cpp
+++ b/src/linksBed/linksMain.cpp
@@ -57,21 +57,29 @@ int main(int argc, char* argv[]) {
 		int parameterLength = (int)strlen(argv[i]);
 
 		if(PARAMETER_CHECK("-i", 2, parameterLength)) {
-			haveBed = true;
-			bedFile = argv[i + 1];
-			i++;
+			if ((i+1) < argc) {
+				haveBed = true;
+				bedFile = argv[i + 1];
+				i++;
+			}
 		}
 		else if(PARAMETER_CHECK("-base", 5, parameterLength)) {
-			base = argv[i + 1];
-			i++;
+			if ((i+1) < argc) {
+				base = argv[i + 1];
+				i++;
+			}
 		}
 		else if(PARAMETER_CHECK("-org", 4, parameterLength)) {
-			org = argv[i + 1];
-			i++;
+			if ((i+1) < argc) {
+				org = argv[i + 1];
+				i++;
+			}
 		}
 		else if(PARAMETER_CHECK("-db", 3, parameterLength)) {
-			db = argv[i + 1];
-			i++;
+			if ((i+1) < argc) {
+				db = argv[i + 1];
+				i++;
+			}
 		}	
 		else {
 			cerr << endl << "*****ERROR: Unrecognized parameter: " << argv[i] << " *****" << endl << endl;
diff --git a/src/maskFastaFromBed/maskFastaFromBedMain.cpp b/src/maskFastaFromBed/maskFastaFromBedMain.cpp
index 0d9957d09af72f506afb9a978672fcf2d14ac762..00add002723a942c8892a5d72659a52491699da3 100755
--- a/src/maskFastaFromBed/maskFastaFromBedMain.cpp
+++ b/src/maskFastaFromBed/maskFastaFromBedMain.cpp
@@ -62,19 +62,25 @@ int main(int argc, char* argv[]) {
 		int parameterLength = (int)strlen(argv[i]);
 
 		if(PARAMETER_CHECK("-fi", 3, parameterLength)) {
-			haveFastaIn = true;
-			fastaInFile = argv[i + 1];
-			i++;
+			if ((i+1) < argc) {
+				haveFastaIn = true;
+				fastaInFile = argv[i + 1];
+				i++;
+			}
 		} 
 		else if(PARAMETER_CHECK("-fo", 3, parameterLength)) {
-			haveFastaOut = true;
-			fastaOutFile = argv[i + 1];
-			i++;
+			if ((i+1) < argc) {
+				haveFastaOut = true;
+				fastaOutFile = argv[i + 1];
+				i++;
+			}
 		} 
 		else if(PARAMETER_CHECK("-bed", 4, parameterLength)) {
-			haveBed = true;
-			bedFile = argv[i + 1];
-			i++;
+			if ((i+1) < argc) {
+				haveBed = true;
+				bedFile = argv[i + 1];
+				i++;
+			}
 		}
 		else if(PARAMETER_CHECK("-soft", 5, parameterLength)) {
 			softMask = true;
diff --git a/src/mergeBed/mergeMain.cpp b/src/mergeBed/mergeMain.cpp
index f00037ea646cdf7f78d77e5a82ef6d78a7927938..3fde15ee2e97a7eda508df0a7f859e9c0c22a621 100755
--- a/src/mergeBed/mergeMain.cpp
+++ b/src/mergeBed/mergeMain.cpp
@@ -60,17 +60,21 @@ int main(int argc, char* argv[]) {
 		int parameterLength = (int)strlen(argv[i]);
 
 		if(PARAMETER_CHECK("-i", 2, parameterLength)) {
-			haveBed = true;
-			bedFile = argv[i + 1];
-			i++;
+			if ((i+1) < argc) {
+				haveBed = true;
+				bedFile = argv[i + 1];
+				i++;
+			}
 		}
 		else if(PARAMETER_CHECK("-n", 2, parameterLength)) {
 			numEntries = true;
 		}
 		else if(PARAMETER_CHECK("-d", 2, parameterLength)) {
-			haveMaxDistance = true;
-			maxDistance = atoi(argv[i + 1]);
-			i++;
+			if ((i+1) < argc) {
+				haveMaxDistance = true;
+				maxDistance = atoi(argv[i + 1]);
+				i++;
+			}
 		}
 		else if (PARAMETER_CHECK("-s", 2, parameterLength)) {
 			forceStrand = true;
diff --git a/src/pairToBed/pairToBedMain.cpp b/src/pairToBed/pairToBedMain.cpp
index 0dce99d524140221ec3cc822698adad7834eb161..5b50666c1d3f03b6747746cdc45acc4bb8ee0813 100755
--- a/src/pairToBed/pairToBedMain.cpp
+++ b/src/pairToBed/pairToBedMain.cpp
@@ -69,6 +69,7 @@ int main(int argc, char* argv[]) {
 				haveBedA = true;
 				outputIsBam  = false;
 				bedAFile = argv[i + 1];
+				i++;
 			}
 			i++;
 		}
@@ -77,15 +78,16 @@ int main(int argc, char* argv[]) {
 				haveBedA = true;
 				inputIsBam = true;
 				bedAFile = argv[i + 1];			
+				i++;
 			}
-			i++;
+			
 		}
 		else if(PARAMETER_CHECK("-b", 2, parameterLength)) {
 			if ((i+1) < argc) {
 				haveBedB = true;
 				bedBFile = argv[i + 1];
+				i++;
 			}
-			i++;
 		}
 		else if(PARAMETER_CHECK("-bedpe", 6, parameterLength)) {
 			outputIsBam = false;
@@ -94,13 +96,15 @@ int main(int argc, char* argv[]) {
 			if ((i+1) < argc) {
 				haveSearchType = true;
 				searchType = argv[i + 1];
+				i++;
 			}
-			i++;
 		}
 		else if(PARAMETER_CHECK("-f", 2, parameterLength)) {
-			haveFraction = true;
-			overlapFraction = atof(argv[i + 1]);
-			i++;
+			if ((i+1) < argc) {
+				haveFraction = true;
+				overlapFraction = atof(argv[i + 1]);
+				i++;
+			}
 		}
 		else if (PARAMETER_CHECK("-s", 2, parameterLength)) {
 			forceStrand = true;
diff --git a/src/pairToPair/pairToPairMain.cpp b/src/pairToPair/pairToPairMain.cpp
index e2e8a1b15b03168fa1c5d1ca1199d5c16c013f3f..aec4986dcf646b0dba7c0a646cfd4348ad8878d2 100755
--- a/src/pairToPair/pairToPairMain.cpp
+++ b/src/pairToPair/pairToPairMain.cpp
@@ -66,31 +66,32 @@ int main(int argc, char* argv[]) {
 			if ((i+1) < argc) {
 				haveBedA = true;
 				bedAFile = argv[i + 1];
+				i++;
 			}
-			i++;
 		}
 		else if(PARAMETER_CHECK("-b", 2, parameterLength)) {
 			if ((i+1) < argc) {
 				haveBedB = true;
 				bedBFile = argv[i + 1];
+				i++;
 			}
-			i++;
 		}	
 		else if(PARAMETER_CHECK("-type", 5, parameterLength)) {
 			if ((i+1) < argc) {
 				haveSearchType = true;
 				searchType = argv[i + 1];
+				i++;
 			}
-			i++;
 		}
 		else if(PARAMETER_CHECK("-f", 2, parameterLength)) {
-			haveFraction = true;
-			overlapFraction = atof(argv[i + 1]);
-			i++;
+			if ((i+1) < argc) {
+				haveFraction = true;
+				overlapFraction = atof(argv[i + 1]);
+				i++;
+			}
 		}
 		else if(PARAMETER_CHECK("-is", 3, parameterLength)) {
 			ignoreStrand = true;
-			i++;
 		}
 		else {
 			cerr << endl << "*****ERROR: Unrecognized parameter: " << argv[i] << " *****" << endl << endl;
diff --git a/src/shuffleBed/shuffleBedMain.cpp b/src/shuffleBed/shuffleBedMain.cpp
index bed823d57a855a1dfe100ccf3ac80f91bd5ce7ee..c996ca19831601e99757c921d400711b1a5e7560 100755
--- a/src/shuffleBed/shuffleBedMain.cpp
+++ b/src/shuffleBed/shuffleBedMain.cpp
@@ -61,24 +61,32 @@ int main(int argc, char* argv[]) {
 		int parameterLength = (int)strlen(argv[i]);
 
  		if(PARAMETER_CHECK("-i", 2, parameterLength)) {
-			haveBed = true;
-			bedFile = argv[i + 1];
-			i++;
+			if ((i+1) < argc) {
+				haveBed = true;
+				bedFile = argv[i + 1];
+				i++;
+			}
 		}
 		else if(PARAMETER_CHECK("-g", 2, parameterLength)) {
-			haveGenome = true;
-			genomeFile = argv[i + 1];
-			i++;
+			if ((i+1) < argc) {
+				haveGenome = true;
+				genomeFile = argv[i + 1];
+				i++;
+			}
 		}
 		else if(PARAMETER_CHECK("-excl", 5, parameterLength)) {
-			haveExclude = true;
-			excludeFile = argv[i + 1];
-			i++;
+			if ((i+1) < argc) {
+				haveExclude = true;
+				excludeFile = argv[i + 1];
+				i++;
+			}
 		}
 		else if(PARAMETER_CHECK("-seed", 5, parameterLength)) {
-			haveSeed = true;
-			seed = atoi(argv[i + 1]);
-			i++;
+			if ((i+1) < argc) {
+				haveSeed = true;
+				seed = atoi(argv[i + 1]);
+				i++;
+			}
 		}	
 		else if(PARAMETER_CHECK("-chrom", 6, parameterLength)) {
 			sameChrom = true;
diff --git a/src/slopBed/slopBedMain.cpp b/src/slopBed/slopBedMain.cpp
index 4504d28aa7b1f3876bda5a893b8085f1cc65db7b..e4f35fed53253aa102373f964301bc295519cf98 100755
--- a/src/slopBed/slopBedMain.cpp
+++ b/src/slopBed/slopBedMain.cpp
@@ -63,34 +63,43 @@ int main(int argc, char* argv[]) {
 		int parameterLength = (int)strlen(argv[i]);
 
  		if(PARAMETER_CHECK("-i", 2, parameterLength)) {
-			haveBed = true;
-			bedFile = argv[i + 1];
-			i++;
+			if ((i+1) < argc) {
+				haveBed = true;
+				bedFile = argv[i + 1];
+				i++;
+			}
 		}
 		else if(PARAMETER_CHECK("-g", 2, parameterLength)) {
-			haveGenome = true;
-			genomeFile = argv[i + 1];
-			i++;
+			if ((i+1) < argc) {
+				haveGenome = true;
+				genomeFile = argv[i + 1];
+				i++;
+			}
 		}
 		else if(PARAMETER_CHECK("-l", 2, parameterLength)) {
-			haveLeft = true;
-			leftSlop = atoi(argv[i + 1]);
-			i++;
+			if ((i+1) < argc) {
+				haveLeft = true;
+				leftSlop = atoi(argv[i + 1]);
+				i++;
+			}
 		}
 		else if(PARAMETER_CHECK("-r", 2, parameterLength)) {
-			haveRight = true;			
-			rightSlop = atoi(argv[i + 1]);
-			i++;
+			if ((i+1) < argc) {
+				haveRight = true;			
+				rightSlop = atoi(argv[i + 1]);
+				i++;
+			}
 		}
 		else if(PARAMETER_CHECK("-b", 2, parameterLength)) {
-			haveBoth = true;
-			leftSlop = atoi(argv[i + 1]);
-			rightSlop = atoi(argv[i + 1]);			
-			i++;
+			if ((i+1) < argc) {
+				haveBoth = true;
+				leftSlop = atoi(argv[i + 1]);
+				rightSlop = atoi(argv[i + 1]);			
+				i++;
+			}
 		}				
 		else if(PARAMETER_CHECK("-s", 2, parameterLength)) {
 			forceStrand = true;
-			i++;
 		}	
 		else {
 		  cerr << endl << "*****ERROR: Unrecognized parameter: " << argv[i] << " *****" << endl << endl;
diff --git a/src/sortBed/sortMain.cpp b/src/sortBed/sortMain.cpp
index bfb83edbdbf6f8629f688722b9674a81d3878f13..d5bea82322506d6a84760a7800924413d8e4a183 100755
--- a/src/sortBed/sortMain.cpp
+++ b/src/sortBed/sortMain.cpp
@@ -60,39 +60,35 @@ int main(int argc, char* argv[]) {
 		int parameterLength = (int)strlen(argv[i]);
 
 		if(PARAMETER_CHECK("-i", 2, parameterLength)) {
-			haveBed = true;
-			bedFile = argv[i + 1];
-			i++;
+			if ((i+1) < argc) {
+				haveBed = true;
+				bedFile = argv[i + 1];
+				i++;
+			}
 		}
 		else if(PARAMETER_CHECK("-sizeA", 6, parameterLength)) {
 			sortBySizeAsc = true;
 			sortChoices++;
-			i++;
 		}
 		else if(PARAMETER_CHECK("-sizeD", 6, parameterLength)) {
 			sortBySizeDesc = true;
 			sortChoices++;
-			i++;
 		}
 		else if(PARAMETER_CHECK("-chrThenSizeA", 13, parameterLength)) {
 			sortByChromThenSizeAsc = true;
 			sortChoices++;
-			i++;
 		}
 		else if(PARAMETER_CHECK("-chrThenSizeD", 13, parameterLength)) {
 			sortByChromThenSizeDesc = true;
 			sortChoices++;
-			i++;
 		}	
 		else if(PARAMETER_CHECK("-chrThenScoreA", 14, parameterLength)) {
 			sortByChromThenScoreAsc = true;
 			sortChoices++;
-			i++;
 		}
 		else if(PARAMETER_CHECK("-chrThenScoreD", 14, parameterLength)) {
 			sortByChromThenScoreDesc = true;
 			sortChoices++;
-			i++;
 		}	
 		else {
 			cerr << endl << "*****ERROR: Unrecognized parameter: " << argv[i] << " *****" << endl << endl;
diff --git a/src/subtractBed/subtractMain.cpp b/src/subtractBed/subtractMain.cpp
index 7889a386151e56b533d2b29212c6541b9c8a2cce..3efccc19341c39fa04da6ec8bebe56c7b4cd447b 100755
--- a/src/subtractBed/subtractMain.cpp
+++ b/src/subtractBed/subtractMain.cpp
@@ -64,20 +64,22 @@ int main(int argc, char* argv[]) {
 			if ((i+1) < argc) {
 				haveBedA = true;
 				bedAFile = argv[i + 1];
+				i++;
 			}
-			i++;
 		}
 		else if(PARAMETER_CHECK("-b", 2, parameterLength)) {
 			if ((i+1) < argc) {
 				haveBedB = true;
 				bedBFile = argv[i + 1];
+				i++;
 			}
-			i++;
 		}	
 		else if(PARAMETER_CHECK("-f", 2, parameterLength)) {
-			haveFraction = true;
-			overlapFraction = atof(argv[i + 1]);
-			i++;
+			if ((i+1) < argc) {
+				haveFraction = true;
+				overlapFraction = atof(argv[i + 1]);
+				i++;
+			}
 		}
 		else if (PARAMETER_CHECK("-s", 2, parameterLength)) {
 			forceStrand = true;
diff --git a/src/windowBed/windowMain.cpp b/src/windowBed/windowMain.cpp
index 5346b6534713aca2d5c17a7bcb46781fb104cf3e..bc8f1e1284bb7ca2e41853ac399a524264c0365c 100755
--- a/src/windowBed/windowMain.cpp
+++ b/src/windowBed/windowMain.cpp
@@ -68,14 +68,18 @@ int main(int argc, char* argv[]) {
 		int parameterLength = (int)strlen(argv[i]);
 
 		if(PARAMETER_CHECK("-a", 2, parameterLength)) {
-			haveBedA = true;
-			bedAFile = argv[i + 1];
-			i++;
+			if ((i+1) < argc) {
+				haveBedA = true;
+				bedAFile = argv[i + 1];
+				i++;
+			}
 		}
 		else if(PARAMETER_CHECK("-b", 2, parameterLength)) {
-			haveBedB = true;
-			bedBFile = argv[i + 1];
-			i++;
+			if ((i+1) < argc) {
+				haveBedB = true;
+				bedBFile = argv[i + 1];
+				i++;
+			}
 		}	
 		else if(PARAMETER_CHECK("-u", 2, parameterLength)) {
 			anyHit = true;
@@ -93,20 +97,26 @@ int main(int argc, char* argv[]) {
 			matchOnStrand = true;
 		}
 		else if (PARAMETER_CHECK("-w", 2, parameterLength)) {
-			haveSlop = true;
-			leftSlop = atoi(argv[i + 1]);
-			rightSlop = leftSlop;
-			i++;
+			if ((i+1) < argc) {
+				haveSlop = true;
+				leftSlop = atoi(argv[i + 1]);
+				rightSlop = leftSlop;
+				i++;
+			}
 		}
 		else if (PARAMETER_CHECK("-l", 2, parameterLength)) {
-			haveLeft = true;
-			leftSlop = atoi(argv[i + 1]);
-			i++;
+			if ((i+1) < argc) {
+				haveLeft = true;
+				leftSlop = atoi(argv[i + 1]);
+				i++;
+			}
 		}
 		else if (PARAMETER_CHECK("-r", 2, parameterLength)) {
-			haveRight = true;
-			rightSlop = atoi(argv[i + 1]);
-			i++;
+			if ((i+1) < argc) {
+				haveRight = true;
+				rightSlop = atoi(argv[i + 1]);
+				i++;
+			}
 		}		
 		else {
 			cerr << endl << "*****ERROR: Unrecognized parameter: " << argv[i] << " *****" << endl << endl;