Index: stk500v2.c
===================================================================
--- stk500v2.c	(revision 947)
+++ stk500v2.c	(working copy)
@@ -116,6 +116,7 @@
         PGMTYPE_STK600,
     }
         pgmtype;
+  unsigned char bareproto;
 
   AVRPART *lastpart;
 
@@ -455,8 +456,9 @@
   unsigned char buf[275 + 6];		// max MESSAGE_BODY of 275 bytes, 6 bytes overhead
   int i;
 
-  if (PDATA(pgm)->pgmtype == PGMTYPE_AVRISP_MKII ||
-      PDATA(pgm)->pgmtype == PGMTYPE_STK600)
+//  if (PDATA(pgm)->pgmtype == PGMTYPE_AVRISP_MKII ||
+//      PDATA(pgm)->pgmtype == PGMTYPE_STK600)
+  if (PDATA(pgm)->bareproto == 1)
     return stk500v2_send_mk2(pgm, data, len);
   else if (PDATA(pgm)->pgmtype == PGMTYPE_JTAGICE_MKII)
     return stk500v2_jtagmkII_send(pgm, data, len);
@@ -558,8 +560,9 @@
   struct timeval tv;
   double tstart, tnow;
 
-  if (PDATA(pgm)->pgmtype == PGMTYPE_AVRISP_MKII ||
-      PDATA(pgm)->pgmtype == PGMTYPE_STK600)
+//  if (PDATA(pgm)->pgmtype == PGMTYPE_AVRISP_MKII ||
+//      PDATA(pgm)->pgmtype == PGMTYPE_STK600)
+  if (PDATA(pgm)->bareproto == 1)
     return stk500v2_recv_mk2(pgm, msg, maxsize);
   else if (PDATA(pgm)->pgmtype == PGMTYPE_JTAGICE_MKII)
     return stk500v2_jtagmkII_recv(pgm, msg, maxsize);
@@ -1283,6 +1286,7 @@
     baud = pgm->baudrate;
 
   PDATA(pgm)->pgmtype = PGMTYPE_UNKNOWN;
+  PDATA(pgm)->bareproto = 0;
 
   if(strcasecmp(port, "avrdoper") == 0){
 #if defined(HAVE_LIBUSB) || (defined(WIN32NATIVE) && defined(HAVE_LIBHID))
@@ -1304,7 +1308,9 @@
 #if defined(HAVE_LIBUSB)
     serdev = &usb_serdev_frame;
     baud = USB_DEVICE_AVRISPMKII;
-    PDATA(pgm)->pgmtype = PGMTYPE_AVRISP_MKII;
+//    PDATA(pgm)->pgmtype = PGMTYPE_AVRISP_MKII;
+    fprintf(stderr,"setting bare protocol\n");
+    PDATA(pgm)->bareproto = 1;
     pgm->set_sck_period = stk500v2_set_sck_period_mk2;
 #else
     fprintf(stderr, "avrdude was compiled without usb support.\n");
