diff -u -p linux/net/irda/ircomm/ircomm_param.d5.c linux/net/irda/ircomm/ircomm_param.c
--- linux/net/irda/ircomm/ircomm_param.d5.c	Wed Jan  8 17:40:08 2003
+++ linux/net/irda/ircomm/ircomm_param.c	Wed Jan  8 17:51:19 2003
@@ -442,7 +442,9 @@ static int ircomm_param_dte(void *instan
 		param->pv.i = self->settings.dte;
 	else {
 		dte = (__u8) param->pv.i;
-		
+
+		self->settings.dce = 0;
+				
 		if (dte & IRCOMM_DELTA_DTR)
 			self->settings.dce |= (IRCOMM_DELTA_DSR|
 					      IRCOMM_DELTA_RI |
diff -u -p linux/net/irda/ircomm/ircomm_tty.d5.c linux/net/irda/ircomm/ircomm_tty.c
--- linux/net/irda/ircomm/ircomm_tty.d5.c	Wed Jan  8 17:40:17 2003
+++ linux/net/irda/ircomm/ircomm_tty.c	Wed Jan  8 17:53:22 2003
@@ -490,7 +490,8 @@ static int ircomm_tty_open(struct tty_st
 	if (line < 0x10) {
 		self->service_type = IRCOMM_3_WIRE | IRCOMM_9_WIRE;
 		self->settings.service_type = IRCOMM_9_WIRE; /* 9 wire as default */
-		self->settings.dce = IRCOMM_CTS | IRCOMM_CD; /* Default line settings */
+		/* Jan Kiszka -> add DSR/RI -> Conform to IrCOMM spec */
+		self->settings.dce = IRCOMM_CTS | IRCOMM_CD | IRCOMM_DSR | IRCOMM_RI; /* Default line settings */
 		IRDA_DEBUG(2, "%s(), IrCOMM device\n", __FUNCTION__ );
 	} else {
 		IRDA_DEBUG(2, "%s(), IrLPT device\n", __FUNCTION__ );
