diff --git a/ChangeLog b/ChangeLog
index a12f8703..d27876af 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2008-11-04  Joerg Wunsch <j.gnu@uriah.heep.sax.de>
+
+	bug #22883: Chip Erase performed even with no-write flag (-n)
+	* main.c: Do not erase the chip if both, -e and -n options have
+	been specified.
+
 2008-11-04  Joerg Wunsch <j.gnu@uriah.heep.sax.de>
 
 	bug #24589: AT90USB64* have wrong signature
diff --git a/main.c b/main.c
index dccb1bb5..0f986bf3 100644
--- a/main.c
+++ b/main.c
@@ -1037,10 +1037,16 @@ int main(int argc, char * argv [])
      * erase the chip's flash and eeprom memories, this is required
      * before the chip can accept new programming
      */
-    if (quell_progress < 2) {
-      fprintf(stderr, "%s: erasing chip\n", progname);
+    if (nowrite) {
+      fprintf(stderr,
+	      "%s: conflicting -e and -n options specified, NOT erasing chip\n",
+	      progname);
+    } else {
+      if (quell_progress < 2) {
+	fprintf(stderr, "%s: erasing chip\n", progname);
+      }
+      avr_chip_erase(pgm, p);
     }
-    avr_chip_erase(pgm, p);
   }