diff --git a/src/sbbs3/sbbsecho.c b/src/sbbs3/sbbsecho.c
index 84d40532d389fca4534dd4628e08aaf53a758496..d013bca802e15e22352caf3d7019c0ec489911a8 100644
--- a/src/sbbs3/sbbsecho.c
+++ b/src/sbbs3/sbbsecho.c
@@ -1213,6 +1213,8 @@ int create_netmail(const char *to, const smbmsg_t* msg, const char *subject, con
 	if(hdr.origpoint)
 		fprintf(fp,"\1FMPT %hu\r",hdr.origpoint);
 	fprintf(fp,"\1PID: %s\r", (msg==NULL || msg->ftn_pid==NULL) ? sbbsecho_pid() : msg->ftn_pid);
+	if(msg->columns)
+		fprintf(fp,"\1COLS: %u\r", (unsigned int)msg->columns);
 	if(msg != NULL) {
 		/* Unknown kludge lines are added here */
 		for(int i=0; i<msg->total_hfields; i++)
@@ -3472,6 +3474,13 @@ int fmsgtosmsg(char* fbuf, fmsghdr_t* hdr, uint user, uint subnum)
 				msg.hdr.when_written.zone = fmsgzone(fbuf+l);
 			}
 
+			else if(!strncmp((char *)fbuf+l+1,"COLS:", 5)) {	/* SBBSecho */
+				l+=5;
+				while(l<length && fbuf[l] <= ' ' && fbuf[l] >= 0) l++;
+				uint8_t columns = atoi(fbuf + l);
+				smb_hfield_bin(&msg, SMB_COLUMNS, columns);
+			}
+
 			else {		/* Unknown kludge line */
 				while(l<length && fbuf[l]<=' ' && fbuf[l]>=0) l++;
 				m=l;
diff --git a/src/sbbs3/sbbsecho.h b/src/sbbs3/sbbsecho.h
index ae80e89544b89a365d843b24811c411541afa9dc..34c795db7eebcccaacdbd5bd46dd0afa5e9cc2f9 100644
--- a/src/sbbs3/sbbsecho.h
+++ b/src/sbbs3/sbbsecho.h
@@ -42,7 +42,7 @@
 #include "fidodefs.h"
 
 #define SBBSECHO_VERSION_MAJOR		3
-#define SBBSECHO_VERSION_MINOR		6
+#define SBBSECHO_VERSION_MINOR		7
 
 #define SBBSECHO_PRODUCT_CODE		0x12FF	/* from http://ftsc.org/docs/ftscprod.013 */