diff --git a/channels/chan_oss.c b/channels/chan_oss.c
index 3959cda13d28c2351d4ec3e39a7ee258d9639164..297c578c1e692fe440bb175f7a8e36d144e1716c 100755
--- a/channels/chan_oss.c
+++ b/channels/chan_oss.c
@@ -476,8 +476,14 @@ static int oss_hangup(struct ast_channel *c)
 	needhangup = 0;
 	needanswer = 0;
 	if (hookstate) {
-		res = 2;
-		write(sndcmd[1], &res, sizeof(res));
+		if (autoanswer) {
+			/* Assume auto-hangup too */
+			hookstate = 0;
+		} else {
+			/* Make congestion noise */
+			res = 2;
+			write(sndcmd[1], &res, sizeof(res));
+		}
 	}
 	return 0;
 }
diff --git a/include/asterisk/adsi.h b/include/asterisk/adsi.h
index a3d538d9e1e21ef7b3b75f92fd624eed60bbdbb1..5438e48d0ca8ce48cb141841a32ccb89eac8dc42 100755
--- a/include/asterisk/adsi.h
+++ b/include/asterisk/adsi.h
@@ -77,7 +77,7 @@
 #define ADSI_SWITCH_TO_DATA2	0x92	/* Switch CPE to data mode */
 #define ADSI_SWITCH_TO_VOICE2	0x93	/* Switch CPE to voice mode */
 #define ADSI_DISP_CALL_BUF	0x94	/* Display specified call buffer */
-#define ADSI_CLEAR_CALL_BUF	0x95	/* Clear specified call buffer */
+#define ADSI_CLEAR_CALL_B	0x95	/* Clear specified call buffer */
 
 #ifdef __ADSI_CPE
 /* These messages are reserved for the ADSI CPE only */