diff --git a/avrdude/ChangeLog b/avrdude/ChangeLog
index 8023dfce..aa4ce730 100644
--- a/avrdude/ChangeLog
+++ b/avrdude/ChangeLog
@@ -1,3 +1,9 @@
+2013-09-02  Joerg Wunsch <j.gnu@uriah.heep.sax.de>
+
+	Submitted by Travis Griggs:
+	bug #38307: Can't write usersig of an xmega256a3
+	* stk500v2.c (stk600_xprog_page_erase): allow erasing the usersig space.
+
 2013-09-02  Joerg Wunsch <j.gnu@uriah.heep.sax.de>
 
 	Submitted by Robert Niemi:
diff --git a/avrdude/NEWS b/avrdude/NEWS
index f5fe1691..1a641f0f 100644
--- a/avrdude/NEWS
+++ b/avrdude/NEWS
@@ -86,6 +86,7 @@ Current:
         to upload an invalid Intel HEX file
       - bug #39794: warnings when building avrdude 6.0rc1 under CentOS 6.4
       - bug #35800: Compilation error on certain systems if parport is disabled
+      - bug #38307: Can't write usersig of an xmega256a3
 
   * Keep track of input file contents
 
diff --git a/avrdude/stk500v2.c b/avrdude/stk500v2.c
index b8e6633c..bfd95c08 100644
--- a/avrdude/stk500v2.c
+++ b/avrdude/stk500v2.c
@@ -4322,6 +4322,8 @@ static int stk600_xprog_page_erase(PROGRAMMER * pgm, AVRPART * p, AVRMEM * m,
       b[1] = XPRG_ERASE_BOOT_PAGE;
     } else if (strcmp(m->desc, "eeprom") == 0) {
       b[1] = XPRG_ERASE_EEPROM_PAGE;
+    } else if (strcmp(m->desc, "usersig") == 0) {
+      b[1] = XPRG_ERASE_USERSIG;
     } else {
       fprintf(stderr,
               "%s: stk600_xprog_page_erase(): unknown paged memory \"%s\"\n",