diff --git a/ChangeLog b/ChangeLog
index 1e243ff3..4557e7fc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2005-06-14  Joerg Wunsch <j@uriah.heep.sax.de>
+
+	* avrdude.conf.in: Add support for the ATmega164/324/644.
+	* jtagmkII.c: If enter_progmode fails with RSP_ILLEGAL_JTAG_ID, give
+	the user a hint that the JTAGEN fuse might be unset.
+
 2005-06-11  Joerg Wunsch <j@uriah.heep.sax.de>
 
 	* avrdude.conf.in: Add support for the ATmega329x/649x.
diff --git a/avrdude.conf.in b/avrdude.conf.in
index c9aea566..0efc298e 100644
--- a/avrdude.conf.in
+++ b/avrdude.conf.in
@@ -2436,6 +2436,17 @@ part
         write           = "1 0 1 0  1 1 0 0   1 0 1 0  1 0 0 0",
                           "x x x x  x x x x   i i i i  i i i i";
       ;
+
+    memory "efuse"
+        size            = 1;
+
+        read            = "0 1 0 1  0 0 0 0  0 0 0 0  1 0 0 0",
+                          "x x x x  x x x x  o o o o  o o o o";
+
+        write           = "1 0 1 0  1 1 0 0  1 0 1 0  0 1 0 0",
+                          "x x x x  x x x x  1 1 1 1  1 i i i";
+      ;
+
     memory "signature"
         size            = 3;
         read            = "0  0  1  1   0  0  0  0   x  x  x  x   x  x  x  x",
@@ -2578,6 +2589,17 @@ part
         write           = "1 0 1 0  1 1 0 0   1 0 1 0  1 0 0 0",
                           "x x x x  x x x x   i i i i  i i i i";
       ;
+
+    memory "efuse"
+        size            = 1;
+
+        read            = "0 1 0 1  0 0 0 0  0 0 0 0  1 0 0 0",
+                          "x x x x  x x x x  o o o o  o o o o";
+
+        write           = "1 0 1 0  1 1 0 0  1 0 1 0  0 1 0 0",
+                          "x x x x  x x x x  1 1 1 1  1 i i i";
+      ;
+
     memory "signature"
         size            = 3;
         read            = "0  0  1  1   0  0  0  0   x  x  x  x   x  x  x  x",
@@ -2720,6 +2742,17 @@ part
         write           = "1 0 1 0  1 1 0 0   1 0 1 0  1 0 0 0",
                           "x x x x  x x x x   i i i i  i i i i";
       ;
+
+    memory "efuse"
+        size            = 1;
+
+        read            = "0 1 0 1  0 0 0 0  0 0 0 0  1 0 0 0",
+                          "x x x x  x x x x  o o o o  o o o o";
+
+        write           = "1 0 1 0  1 1 0 0  1 0 1 0  0 1 0 0",
+                          "x x x x  x x x x  1 1 1 1  1 i i i";
+      ;
+
     memory "signature"
         size            = 3;
         read            = "0  0  1  1   0  0  0  0   x  x  x  x   x  x  x  x",
@@ -2860,7 +2893,7 @@ part
                           "x x x x  x x x x  o o o o  o o o o";
 
         write           = "1 0 1 0  1 1 0 0  1 0 1 0  0 1 0 0",
-                          "x x x x  x x x x  1 1 1 i  i i i 1";
+                          "x x x x  x x x x  1 1 1 1  1 i i i";
       ;
 
     memory "lock"
diff --git a/jtagmkII.c b/jtagmkII.c
index c99bf0e2..b8f81b32 100644
--- a/jtagmkII.c
+++ b/jtagmkII.c
@@ -874,6 +874,8 @@ static int jtagmkII_program_enable(PROGRAMMER * pgm)
 	    "%s: jtagmkII_program_enable(): "
 	    "bad response to enter progmode command: 0x%02x\n",
 	    progname, c);
+    if (c == RSP_ILLEGAL_JTAG_ID)
+      fprintf(stderr, "%s: JTAGEN fuse disabled?\n", progname);
     return -1;
   }