diff --git a/ChangeLog b/ChangeLog
index 285983e6..8399b6eb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2009-07-02  Joerg Wunsch <j.gnu@uriah.heep.sax.de>
+
+	bug #22206: avrdude: ser_setspeed(): tcsetattr() failed
+	* ser_posix.c (ser_setspeed): Don't pass TCSAFLUSH to tcsetattr() as
+	it apparently fails to work on Solaris.  After reading the
+	documentation again, it seems TCSAFLUSH and TCSANOW are indeed
+	mutually exclusive.
+
 2009-07-02  Joerg Wunsch <j.gnu@uriah.heep.sax.de>
 
 	bug #22234: WINDOWS version: HOWTO: Specify Serial Ports Larger than COM9
diff --git a/ser_posix.c b/ser_posix.c
index f7d289cb..2408f9f0 100644
--- a/ser_posix.c
+++ b/ser_posix.c
@@ -120,10 +120,10 @@ static int ser_setspeed(union filedescriptor *fd, long baud)
 
   cfsetospeed(&termios, speed);
   cfsetispeed(&termios, speed);
-  
-  rc = tcsetattr(fd->ifd, TCSANOW | TCSAFLUSH, &termios);
+
+  rc = tcsetattr(fd->ifd, TCSANOW, &termios);
   if (rc < 0) {
-    fprintf(stderr, "%s: ser_setspeed(): tcsetattr() failed",
+    fprintf(stderr, "%s: ser_setspeed(): tcsetattr() failed\n",
             progname);
     return -errno;
   }