diff --git a/seqtk.c b/seqtk.c
index 64fdd4afafaedde14c8ba83200f3fc1ce7a6eb24..230e1e4fb9f7f0219f0ac3ece5cf5fb607270c49 100644
--- a/seqtk.c
+++ b/seqtk.c
@@ -280,13 +280,14 @@ int stk_trimfq(int argc, char *argv[])
 	gzFile fp;
 	kseq_t *seq;
 	double param = 0.05, q_int2real[128];
-	int i, c, min_len = 30, left = 0, right = 0;
-	while ((c = getopt(argc, argv, "l:q:b:e:")) >= 0) {
+	int i, c, min_len = 30, left = 0, right = 0, fixed_len = -1;
+	while ((c = getopt(argc, argv, "l:q:b:e:L:")) >= 0) {
 		switch (c) {
 			case 'q': param = atof(optarg); break;
 			case 'l': min_len = atoi(optarg); break;
 			case 'b': left = atoi(optarg); break;
 			case 'e': right = atoi(optarg); break;
+			case 'L': fixed_len = atoi(optarg); break;
 		}
 	}
 	if (optind == argc) {
@@ -296,6 +297,7 @@ int stk_trimfq(int argc, char *argv[])
 		fprintf(stderr, "         -l INT      maximally trim down to INT bp (disabled by -b/-e) [%d]\n", min_len);
 		fprintf(stderr, "         -b INT      trim INT bp from left (non-zero to disable -q/-l) [0]\n");
 		fprintf(stderr, "         -e INT      trim INT bp from right (non-zero to disable -q/-l) [0]\n");
+		fprintf(stderr, "         -L INT      retain at most INT bp from the 5'-end (non-zero to disable -q/-l) [0]\n");
 		fprintf(stderr, "\n");
 		return 1;
 	}
@@ -306,9 +308,10 @@ int stk_trimfq(int argc, char *argv[])
 	while (kseq_read(seq) >= 0) {
 		int beg, tmp, end;
 		double s, max;
-		if (left || right) {
+		if (left || right || fixed_len > 0) {
 			beg = left; end = seq->seq.l - right;
 			if (beg >= end) beg = end = 0;
+			if (end - beg > fixed_len) end = beg + fixed_len;
 		} else if (seq->qual.l > min_len) {
 			for (i = 0, beg = tmp = 0, end = seq->qual.l, s = max = 0.; i < seq->qual.l; ++i) {
 				int q = seq->qual.s[i];
@@ -1555,7 +1558,7 @@ static int usage()
 {
 	fprintf(stderr, "\n");
 	fprintf(stderr, "Usage:   seqtk <command> <arguments>\n");
-	fprintf(stderr, "Version: 1.0-r86-dirty\n\n");
+	fprintf(stderr, "Version: 1.0-r87-dirty\n\n");
 	fprintf(stderr, "Command: seq       common transformation of FASTA/Q\n");
 	fprintf(stderr, "         comp      get the nucleotide composition of FASTA/Q\n");
 	fprintf(stderr, "         sample    subsample sequences\n");