diff --git a/NEWS b/NEWS
index 4912a530..810379b0 100644
--- a/NEWS
+++ b/NEWS
@@ -122,6 +122,7 @@ Changes since version 7.0:
     - megaAVR JTAG programming doesn't work for SNAP and PICkit4
       #1052
     - urclock/FTDI communication issues #1245
+    - stk500v2.c dumps core on open #1254
 
   * Pull requests:
 
diff --git a/src/jtag3.c b/src/jtag3.c
index 49cee6f4..36aed4f0 100644
--- a/src/jtag3.c
+++ b/src/jtag3.c
@@ -1570,7 +1570,8 @@ int jtag3_open_common(PROGRAMMER *pgm, const char *port) {
   }
 
   // Get USB serial number
-  pgm->usbsn = serial_serno();
+  if (serial_serno)
+    pgm->usbsn = serial_serno();
 
   /*
    * drain any extraneous input
diff --git a/src/stk500v2.c b/src/stk500v2.c
index e5f360f7..095b3248 100644
--- a/src/stk500v2.c
+++ b/src/stk500v2.c
@@ -1579,7 +1579,8 @@ static int stk500v2_open(PROGRAMMER *pgm, const char *port) {
   }
 
   // Get USB serial number
-  pgm->usbsn = serial_serno();
+  if (serial_serno)
+    pgm->usbsn = serial_serno();
 
   /*
    * drain any extraneous input