diff -p -up dkms-hso-1.2/hso.c.refcount dkms-hso-1.2/hso.c --- dkms-hso-1.2/hso.c.refcount 2008-05-23 19:50:59.000000000 +0200 +++ dkms-hso-1.2/hso.c 2008-05-23 19:56:51.000000000 +0200 @@ -1103,8 +1103,8 @@ static void hso_serial_close(struct tty_ /* reset the rts and dtr */ /* do the actual close */ serial->open_count--; + kref_put(&serial->parent->ref, hso_serial_ref_free); if (serial->open_count <= 0) { - kref_put(&serial->parent->ref, hso_serial_ref_free); serial->open_count = 0; if (serial->tty) { serial->tty->driver_data = NULL;