diff -ru dpkg-1.17.6/dpkg-deb/build.c dpkg-1.17.6.patched/dpkg-deb/build.c
--- dpkg-1.17.6/dpkg-deb/build.c        2014-01-15 06:02:16.000000000 -0800
+++ dpkg-1.17.6.patched/dpkg-deb/build.c        2014-03-01 11:18:37.252434096 -0800
@@ -501,7 +501,10 @@
       ohshite(_("failed to chdir to `%.255s'"), dir);
     if (chdir(BUILDCONTROLDIR))
       ohshite(_("failed to chdir to `%.255s'"), ".../DEBIAN");
-    execlp(TAR, "tar", "-cf", "-", "--format=gnu", ".", NULL);
+    if (sameownerflag)
+      execlp(TAR, "tar", "-cf", "-", "--format=gnu", ".", NULL);
+    else
+      execlp(TAR, "tar", "-cf", "-", "--format=gnu", "--owner=root", "--group=root", ".", NULL);
     ohshite(_("unable to execute %s (%s)"), "tar -cf", TAR);
   }
   close(p1[1]);
@@ -600,6 +603,10 @@
     if (chdir(dir))
       ohshite(_("failed to chdir to `%.255s'"), dir);
     execlp(TAR, "tar", "-cf", "-", "--format=gnu", "--null", "-T", "-", "--no-recursion", NULL);
+    if (sameownerflag)
+      execlp(TAR, "tar", "-cf", "-", "--format=gnu", "--null", "-T", "-", "--no-recursion", NULL);
+    else
+      execlp(TAR, "tar", "-cf", "-", "--format=gnu", "--null", "-T", "-", "--no-recursion", "--owner=root", "--group=root", NULL);
     ohshite(_("unable to execute %s (%s)"), "tar -cf", TAR);
   }
   close(p1[0]);
diff -ru dpkg-1.17.6/dpkg-deb/dpkg-deb.h dpkg-1.17.6.patched/dpkg-deb/dpkg-deb.h
--- dpkg-1.17.6/dpkg-deb/dpkg-deb.h     2014-01-15 06:02:16.000000000 -0800
+++ dpkg-1.17.6.patched/dpkg-deb/dpkg-deb.h     2014-03-01 11:19:00.444639443 -0800
@@ -38,6 +38,7 @@
 extern int opt_verbose;
 extern int opt_uniform_compression;
 extern int debugflag, nocheckflag;
+extern int sameownerflag;
 
 extern struct deb_version deb_format;
 
diff -ru dpkg-1.17.6/dpkg-deb/main.c dpkg-1.17.6.patched/dpkg-deb/main.c
--- dpkg-1.17.6/dpkg-deb/main.c 2014-01-15 06:02:16.000000000 -0800
+++ dpkg-1.17.6.patched/dpkg-deb/main.c 2014-03-01 11:20:39.358605821 -0800
@@ -83,6 +83,7 @@
 "  -R|--raw-extract <deb> <directory>\n"
 "                                   Extract control info and files.\n"
 "  --fsys-tarfile <deb>             Output filesystem tarfile.\n"
+"  --root-owner, --same-owner       Set ownership of files in the archive\n"
 "\n"));
 
   printf(_(
@@ -142,6 +143,7 @@
 
 int debugflag = 0;
 int nocheckflag = 0;
+int sameownerflag = 1;
 int opt_verbose = 0;
 int opt_uniform_compression = 0;
 
@@ -242,6 +244,8 @@
   { "showformat",    0,   1, NULL,           &showformat,  NULL             },
   { "help",          '?', 0, NULL,           NULL,         usage            },
   { "version",       0,   0, NULL,           NULL,         printversion     },
+  { "root-owner",    0,   0, &sameownerflag, NULL,         NULL,          0 },
+  { "same-owner",    0,   0, &sameownerflag, NULL,         NULL,          1 },
   {  NULL,           0,   0, NULL,           NULL,         NULL             }
 };
 
diff -ru dpkg-1.17.6/man/dpkg-deb.1 dpkg-1.17.6.patched/man/dpkg-deb.1
--- dpkg-1.17.6/man/dpkg-deb.1  2014-01-15 06:02:16.000000000 -0800
+++ dpkg-1.17.6.patched/man/dpkg-deb.1  2014-03-01 11:22:04.993603230 -0800
@@ -261,6 +261,12 @@
 usual checks on the proposed contents of an archive. You can build
 any archive you want, no matter how broken, this way.
 .TP
+.BR \-\-root\-owner
+Set user and group ownership of all files in the archive to "root".
+.TP
+.BR \-\-same\-owner
+Take ownership data from the filesystem. This is the default.
+.TP
 .BR \-v ", " \-\-verbose
 Enables verbose output. This currently only affects \fB\-\-extract\fP making
 it behave like \fB\-\-vextract\fP.