diff -urN coreutils-8.16-orig/man/dd.1 coreutils-8.16/man/dd.1
--- coreutils-8.16-orig/man/dd.1	2012-03-26 21:08:15 +0900
+++ coreutils-8.16/man/dd.1	2012-03-28 23:09:16 +0900
@@ -49,8 +49,8 @@
 skip=N
 skip N ibs\-sized blocks at start of input
 .TP
-status=noxfer
-suppress transfer statistics
+status=xfer
+display transfer statistics when finished
 .PP
 BLOCKS and BYTES may be followed by the following multiplicative suffixes:
 c =1, w =2, b =512, kB =1000, K =1024, MB =1000*1000, M =1024*1024, xM =M
diff -urN coreutils-8.16-orig/src/dd.c coreutils-8.16/src/dd.c
--- coreutils-8.16-orig/src/dd.c	2012-03-25 05:26:51 +0900
+++ coreutils-8.16/src/dd.c	2012-03-28 23:10:01 +0900
@@ -135,6 +135,7 @@
 /* Status bit masks.  */
 enum
   {
+    STATUS_XFER = 0x80000000,
     STATUS_NOXFER = 01
   };
 
@@ -369,6 +370,7 @@
 /* Status, for status="...".  */
 static struct symbol_value const statuses[] =
 {
+  {"xfer",	STATUS_XFER},
   {"noxfer",	STATUS_NOXFER},
   {"",		0}
 };
@@ -536,7 +538,7 @@
   oflag=FLAGS     write as per the comma separated symbol list\n\
   seek=N          skip N obs-sized blocks at start of output\n\
   skip=N          skip N ibs-sized blocks at start of input\n\
-  status=noxfer   suppress transfer statistics\n\
+  status=xfer     display transfer statistics when finished\n\
 "), stdout);
       fputs (_("\
 \n\
@@ -622,7 +624,7 @@
 Sending a %s signal to a running 'dd' process makes it\n\
 print I/O statistics to standard error and then resume copying.\n\
 \n\
-  $ dd if=/dev/zero of=/dev/null& pid=$!\n\
+  $ dd if=/dev/zero of=/dev/null status=xfer& pid=$!\n\
   $ kill -%s $pid; sleep 1; kill $pid\n\
   18335302+0 records in\n\
   18335302+0 records out\n\
@@ -684,7 +686,7 @@
                        select_plural (r_truncate)),
              r_truncate);
 
-  if (status_flags & STATUS_NOXFER)
+  if (!(status_flags & STATUS_XFER))
     return;
 
   /* Use integer arithmetic to compute the transfer rate,
