diff --git a/apps/app_fax.c b/apps/app_fax.c
index 675d626a7e1af1bdc5d0d214232cd7cdcdcf4a72..e47497ed4429f62125ce51cd9448312dff4ba1fb 100644
--- a/apps/app_fax.c
+++ b/apps/app_fax.c
@@ -46,8 +46,8 @@ static char *app_sndfax_desc =
 "  SendFAX(filename[|options]):\n"
 "Send a given TIFF file to the channel as a FAX.\n"
 "The option string may contain zero or more of the following characters:\n"
-"     'a' -- makes the application behave as an answering machine\n"
-"	    The default behaviour is to behave as a calling machine.\n"
+"     'a' - makes the application behave as an answering machine\n"
+"           The default behaviour is to behave as a calling machine.\n"
 "\n"
 "This application uses following variables:\n"
 "     LOCALSTATIONID to identify itself to the remote end.\n"
@@ -55,10 +55,12 @@ static char *app_sndfax_desc =
 "\n"
 "This application sets the following channel variables upon completion:\n"
 "     FAXSTATUS       - status of operation:\n"
-"			   SUCCESS | FAILED\n"
-"     FAXERROR	- Error when FAILED\n"
+"                           SUCCESS | FAILED\n"
+"     FAXERROR        - Error when FAILED\n"
+"     FAXMODE         - Mode used:\n"
+"                           audio | T38\n"
 "     REMOTESTATIONID - CSID of the remote side.\n"
-"     FAXPAGES	- number of pages sent.\n"
+"     FAXPAGES        - number of pages sent.\n"
 "     FAXBITRATE      - transmition rate.\n"
 "     FAXRESOLUTION   - resolution.\n"
 "\n"
@@ -73,7 +75,7 @@ static char *app_rcvfax_desc =
 "the file if it already exists. File created will have TIFF format.\n"
 "The option string may contain zero or more of the following characters:\n"
 "     'c' -- makes the application behave as a calling machine\n"
-"	    The default behaviour is to behave as an answering machine.\n"
+"            The default behaviour is to behave as an answering machine.\n"
 "\n"
 "This application uses following variables:\n"
 "     LOCALSTATIONID to identify itself to the remote end.\n"
@@ -81,10 +83,12 @@ static char *app_rcvfax_desc =
 "\n"
 "This application sets the following channel variables upon completion:\n"
 "     FAXSTATUS       - status of operation:\n"
-"			   SUCCESS | FAILED\n"
-"     FAXERROR	- Error when FAILED\n"
+"                           SUCCESS | FAILED\n"
+"     FAXERROR        - Error when FAILED\n"
+"     FAXMODE         - Mode used:\n"
+"                           audio | T38\n"
 "     REMOTESTATIONID - CSID of the remote side.\n"
-"     FAXPAGES	- number of pages sent.\n"
+"     FAXPAGES        - number of pages sent.\n"
 "     FAXBITRATE      - transmition rate.\n"
 "     FAXRESOLUTION   - resolution.\n"
 "\n"
@@ -575,6 +579,7 @@ static int transmit(fax_session *s)
 	pbx_builtin_setvar_helper(s->chan, "FAXSTATUS", "FAILED"); 
 	pbx_builtin_setvar_helper(s->chan, "FAXERROR", "Channel problems"); 
 
+	pbx_builtin_setvar_helper(s->chan, "FAXMODE", NULL);
 	pbx_builtin_setvar_helper(s->chan, "REMOTESTATIONID", NULL);
 	pbx_builtin_setvar_helper(s->chan, "FAXPAGES", NULL);
 	pbx_builtin_setvar_helper(s->chan, "FAXRESOLUTION", NULL);
@@ -593,6 +598,7 @@ static int transmit(fax_session *s)
 	s->t38state = ast_channel_get_t38_state(s->chan);
 	if (s->t38state != T38_STATE_NEGOTIATED) {
 		/* T38 is not negotiated on the channel yet. First start regular transmission. If it switches to T38, follow */	
+		pbx_builtin_setvar_helper(s->chan, "FAXMODE", "audio"); 
 		res = transmit_audio(s);
 		if (res > 0) {
 			/* transmit_audio reports switchover to T38. Update t38state */
@@ -604,6 +610,7 @@ static int transmit(fax_session *s)
 	}
 
 	if (s->t38state == T38_STATE_NEGOTIATED) {
+		pbx_builtin_setvar_helper(s->chan, "FAXMODE", "T38"); 
 		res = transmit_t38(s);
 	}