diff --git a/stk500v2.c b/stk500v2.c
index 9ee8588d..37e4f3f2 100644
--- a/stk500v2.c
+++ b/stk500v2.c
@@ -2823,11 +2823,17 @@ static int stk500v2_set_sck_period_mk2(PROGRAMMER * pgm, double v)
 {
   int i;
 
-  for (i = 0; i < sizeof(avrispmkIIfreqs); i++) {
+  for (i = 0; i < sizeof(avrispmkIIfreqs) / sizeof(avrispmkIIfreqs[0]); i++) {
     if (1 / avrispmkIIfreqs[i] >= v)
       break;
   }
 
+  if (i >= sizeof(avrispmkIIfreqs) / sizeof(avrispmkIIfreqs[0])) {
+    avrdude_message(MSG_INFO, "%s: stk500v2_set_sck_period_mk2(): "
+                    "invalid SCK period: %g\n", progname, v);
+    return -1;
+  }
+
   avrdude_message(MSG_NOTICE2, "Using p = %.2f us for SCK (param = %d)\n",
 	    1000000 / avrispmkIIfreqs[i], i);