diff -u gzip-1.4/gunzip.in gzip-1.4.1/gunzip.in
--- gzip-1.4/gunzip.in	2010-01-03 15:26:02.000000000 -0200
+++ gzip-1.4.1/gunzip.in	2012-02-14 19:16:59.000000000 -0200
@@ -38,6 +38,7 @@
 
   -c, --stdout      write on standard output, keep original files unchanged
   -f, --force       force overwrite of output file and compress links
+  -k, --keep        keep (don't delete) input files
   -l, --list        list compressed file contents
   -n, --no-name     do not save or restore the original name and time stamp
   -N, --name        save or restore the original name and time stamp
diff -u gzip-1.4/gzip.c gzip-1.4.1/gzip.c
--- gzip-1.4/gzip.c	2010-01-03 15:26:02.000000000 -0200
+++ gzip-1.4.1/gzip.c	2012-02-14 19:09:50.000000000 -0200
@@ -169,6 +169,7 @@
 
 int ascii = 0;        /* convert end-of-lines to local OS conventions */
 int to_stdout = 0;    /* output to stdout (-c) */
+int keep_ifname = 0;  /* keep (don't delete) input files */
 int decompress = 0;   /* decompress (-d) */
 int force = 0;        /* don't ask questions, compress links (-f) */
 int no_name = -1;     /* don't save or restore the original file name */
@@ -254,11 +255,12 @@
  /* {"encrypt",    0, 0, 'e'},    encrypt */
     {"force",      0, 0, 'f'}, /* force overwrite of output file */
     {"help",       0, 0, 'h'}, /* give help */
- /* {"pkzip",      0, 0, 'k'},    force output in pkzip format */
+    {"keep",       0, 0, 'k'}, /* keep (don't delete) input files */
     {"list",       0, 0, 'l'}, /* list .gz file contents */
     {"license",    0, 0, 'L'}, /* display software license */
     {"no-name",    0, 0, 'n'}, /* don't save or restore original name & time */
     {"name",       0, 0, 'N'}, /* save or restore original name & time */
+ /* {"pkzip",      0, 0, 'p'},    force output in pkzip format */
     {"quiet",      0, 0, 'q'}, /* quiet mode */
     {"silent",     0, 0, 'q'}, /* quiet mode */
     {"recursive",  0, 0, 'r'}, /* recurse through directories */
@@ -329,7 +331,7 @@
 /*  -e, --encrypt     encrypt */
  "  -f, --force       force overwrite of output file and compress links",
  "  -h, --help        give this help",
-/*  -k, --pkzip       force output in pkzip format */
+ "  -k, --keep        keep (don't delete) input files",
  "  -l, --list        list compressed file contents",
  "  -L, --license     display software license",
 #ifdef UNDOCUMENTED
@@ -338,6 +340,7 @@
 #endif
  "  -n, --no-name     do not save or restore the original name and time stamp",
  "  -N, --name        save or restore the original name and time stamp",
+/*  -p, --pkzip       force output in pkzip format */
  "  -q, --quiet       suppress all warnings",
 #if ! NO_DIR
  "  -r, --recursive   operate recursively on directories",
@@ -433,7 +436,7 @@
     z_suffix = Z_SUFFIX;
     z_len = strlen(z_suffix);
 
-    while ((optc = getopt_long (argc, argv, "ab:cdfhH?lLmMnNqrS:tvVZ123456789",
+    while ((optc = getopt_long (argc, argv, "ab:cdfhH?klLmMnNqrS:tvVZ123456789",
 				longopts, (int *)0)) != -1) {
 	switch (optc) {
         case 'a':
@@ -456,6 +459,8 @@
 	    force++; break;
 	case 'h': case 'H':
 	    help(); do_exit(OK); break;
+	case 'k':
+	    keep_ifname = 1; break;
 	case 'l':
 	    list = decompress = to_stdout = 1; break;
 	case 'L':
@@ -844,7 +849,10 @@
 
 	sigprocmask (SIG_BLOCK, &caught_signals, &oldset);
 	remove_ofname_fd = -1;
-	unlink_errno = xunlink (ifname) == 0 ? 0 : errno;
+	if (!keep_ifname)
+	  {
+	    unlink_errno = xunlink (ifname) == 0 ? 0 : errno;
+          }
 	sigprocmask (SIG_SETMASK, &oldset, NULL);
 
 	if (unlink_errno)
diff -u gzip-1.4/gzip.doc gzip-1.4.1/gzip.doc
--- gzip-1.4/gzip.doc	2010-01-07 13:10:12.000000000 -0200
+++ gzip-1.4.1/gzip.doc	2012-02-14 17:56:40.000000000 -0200
@@ -120,6 +120,10 @@
        -h --help
 	      Display a help screen and quit.
 
+       -k --keep
+              Keep  (don't  delete)  input   files   during   compression   or 
+              decompression.
+
        -l --list
 	      For each compressed file, list the following fields:
 
