diff --git a/src/sbbs3/answer.cpp b/src/sbbs3/answer.cpp
index fe05e0957d1e2208d42ea75183dbe366940072c9..2c0e2921b3ffc0d37c23498349bd229259306fea 100644
--- a/src/sbbs3/answer.cpp
+++ b/src/sbbs3/answer.cpp
@@ -450,7 +450,7 @@ bool sbbs_t::answer()
 									thisnode.useron = useron.number;
 									putnodedat(cfg.node_num, &thisnode);
 								}
-								SAFECOPY(useron.modem, connection);
+								SAFECOPY(useron.connection, connection);
 								SAFECOPY(useron.ipaddr, client_ipaddr);
 								SAFECOPY(useron.comp, client_name);
 								useron.logons++;
diff --git a/src/sbbs3/chk_ar.cpp b/src/sbbs3/chk_ar.cpp
index 3e83868a2e95ae8a7fee6b93e9e30551c7184a80..731c0796b78d46537d57d721a3d894fb33bf63a1 100644
--- a/src/sbbs3/chk_ar.cpp
+++ b/src/sbbs3/chk_ar.cpp
@@ -650,7 +650,7 @@ bool sbbs_t::ar_exp(const uchar **ptrptr, user_t* user, client_t* client)
 				if (client != NULL)
 					p = client->protocol;
 				else
-					p = user->modem;
+					p = user->connection;
 				if (!findstr_in_string(p, (char*)*ptrptr))
 					result = _not;
 				else
diff --git a/src/sbbs3/exec.cpp b/src/sbbs3/exec.cpp
index d04e93e31599175b59ce25864eac244ce10ac511..14055ab68c242e8231e34c0de16ba1ebada1814e 100644
--- a/src/sbbs3/exec.cpp
+++ b/src/sbbs3/exec.cpp
@@ -67,7 +67,7 @@ char ** sbbs_t::getstrvar(csi_t *bin, uint32_t name)
 			sysvar_p[sysvar_pi] = (char*)useron.phone;
 			break;
 		case 0x08f65a2a:
-			sysvar_p[sysvar_pi] = (char*)useron.modem;
+			sysvar_p[sysvar_pi] = (char*)useron.connection;
 			break;
 		case 0xc7e0e8ce:
 			sysvar_p[sysvar_pi] = (char*)useron.netmail;
@@ -1739,7 +1739,7 @@ int sbbs_t::exec(csi_t *csi)
 						csi->logic = LOGIC_TRUE;
 						break;
 					case USER_STRING_MODEM:
-						snprintf(useron.modem, sizeof useron.modem, "%.*s", LEN_MODEM, csi->str);
+						snprintf(useron.connection, sizeof useron.connection, "%s", csi->str);
 						putuserstr(useron.number, USER_CONNECTION
 						           , useron.phone);
 						csi->logic = LOGIC_TRUE;
diff --git a/src/sbbs3/filedat.c b/src/sbbs3/filedat.c
index 44fdccc5319d43a2ab10a7297e43c6db3a3ffe23..4a6bb02eae69fe986b3b1d73d08ef3b70b398a0b 100644
--- a/src/sbbs3/filedat.c
+++ b/src/sbbs3/filedat.c
@@ -1224,7 +1224,7 @@ char* cmdstr(scfg_t* cfg, user_t* user, const char* instr, const char* fpath
 					break;
 				case 'C':   /* Connect Description */
 					if (user != NULL)
-						strncat(cmd, user->modem, avail);
+						strncat(cmd, user->connection, avail);
 					break;
 				case 'D':   /* Connect (DCE) Rate */
 					break;
diff --git a/src/sbbs3/ftpsrvr.c b/src/sbbs3/ftpsrvr.c
index f44372e805729447fffea74930a52da389d52de0..8c8021bc754c53de584c92bdac8d36dd42e6ef68 100644
--- a/src/sbbs3/ftpsrvr.c
+++ b/src/sbbs3/ftpsrvr.c
@@ -2670,7 +2670,7 @@ static void ctrl_thread(void* arg)
 			/* Adjust User Total Logons/Logons Today */
 			user.logons++;
 			user.ltoday++;
-			SAFECOPY(user.modem, "FTP");
+			SAFECOPY(user.connection, "FTP");
 			SAFECOPY(user.comp, host_name);
 			SAFECOPY(user.ipaddr, host_ip);
 			user.logontime = (time32_t)logintime;
diff --git a/src/sbbs3/gtkuseredit/events.c b/src/sbbs3/gtkuseredit/events.c
index 6b7b90c0314cb06e52705d46473d54bff5be6e9b..10a1fd42b3de8d1523eb8c47cad56b2eca12a6c3 100644
--- a/src/sbbs3/gtkuseredit/events.c
+++ b/src/sbbs3/gtkuseredit/events.c
@@ -179,7 +179,7 @@ G_MODULE_EXPORT void load_user(GtkWidget *wiggy, gpointer data)
 		if(w==NULL)
 			fprintf(stderr,"Cannot get the connection widget\n");
 		else
-			gtk_entry_set_text(GTK_ENTRY(w),user.modem);
+			gtk_entry_set_text(GTK_ENTRY(w),user.connection);
 
 		/* Chat Handle */
 		w=GTK_WIDGET(gtk_builder_get_object(builder, "eHandle"));
@@ -899,7 +899,7 @@ G_MODULE_EXPORT void save_user(GtkWidget *wiggy, gpointer data)
 		if(w==NULL)
 			fprintf(stderr,"Cannot get the connection widget\n");
 		else
-			strcpy(user.modem, gtk_entry_get_text(GTK_ENTRY(w)));
+			strcpy(user.connection, gtk_entry_get_text(GTK_ENTRY(w)));
 
 		/* Chat Handle */
 		w=GTK_WIDGET(gtk_builder_get_object(builder, "eHandle"));
diff --git a/src/sbbs3/gtkuserlist/events.c b/src/sbbs3/gtkuserlist/events.c
index 9e07e680d386ccc5e1c768721fefcf96980d3470..a093c4916ee5ec3551f19df8300cb90547a42c56 100644
--- a/src/sbbs3/gtkuserlist/events.c
+++ b/src/sbbs3/gtkuserlist/events.c
@@ -102,7 +102,7 @@ G_MODULE_EXPORT void update_userlist_item(GtkListStore *lstore, GtkTreeIter *cur
 		,4,getage(&cfg, user.birth)
 		,5,sex
 		,6,user.location
-		,7,user.modem
+		,7,user.connection
 		,8,user.note
 		,9,user.comp
 		,10,user.phone
diff --git a/src/sbbs3/js_system.c b/src/sbbs3/js_system.c
index a8f9c8623009f5905a64b94381bcb127da65640b..406bdd70fa14c5dc0cbbad1b6dddbd129c6a3a4e 100644
--- a/src/sbbs3/js_system.c
+++ b/src/sbbs3/js_system.c
@@ -1846,7 +1846,7 @@ js_new_user(JSContext *cx, uintN argc, jsval *arglist)
 		}
 	}
 	if (client != NULL) {
-		SAFECOPY(user.modem, client->protocol);
+		SAFECOPY(user.connection, client->protocol);
 		SAFECOPY(user.comp, client->host);
 		SAFECOPY(user.ipaddr, client->addr);
 	}
diff --git a/src/sbbs3/js_user.c b/src/sbbs3/js_user.c
index 8859e57c89e55ab2eaa7ea4a2dc1af876e712507..bf1f97cf39342ddd545b2a24f9075b1afb8bb3dd 100644
--- a/src/sbbs3/js_user.c
+++ b/src/sbbs3/js_user.c
@@ -227,7 +227,7 @@ static JSBool js_user_get(JSContext *cx, JSObject *obj, jsid id, jsval *vp)
 			val = getage(scfg, p->user->birth);
 			break;
 		case USER_PROP_MODEM:
-			s = p->user->modem;
+			s = p->user->connection;
 			break;
 		case USER_PROP_LASTON:
 			val = p->user->laston;
@@ -569,7 +569,7 @@ static JSBool js_user_set(JSContext *cx, JSObject *obj, jsid id, JSBool strict,
 				putuserdec32(scfg, p->user->number, USER_BIRTH, isoDate_create(getbirthyear(scfg, p->user->birth), getbirthmonth(scfg, p->user->birth), val));
 			break;
 		case USER_PROP_MODEM:
-			SAFECOPY(p->user->modem, str);
+			SAFECOPY(p->user->connection, str);
 			putuserstr(scfg, p->user->number, USER_CONNECTION, str);
 			break;
 		case USER_PROP_ROWS:
diff --git a/src/sbbs3/logon.cpp b/src/sbbs3/logon.cpp
index 35450bccd6515631e8a1e06ce188e7e6ba7a5556..0252a6701f5d49aac2756bc1dcef827ec27e5cde 100644
--- a/src/sbbs3/logon.cpp
+++ b/src/sbbs3/logon.cpp
@@ -447,7 +447,7 @@ bool sbbs_t::logon()
 		logline(LOG_NOTICE, "+!", str);
 		return false;
 	}
-	SAFECOPY(useron.modem, connection);
+	SAFECOPY(useron.connection, connection);
 	SAFECOPY(useron.ipaddr, client_ipaddr);
 	SAFECOPY(useron.comp, client_name);
 	useron.logons++;
diff --git a/src/sbbs3/newuser.cpp b/src/sbbs3/newuser.cpp
index aa54103ae765ca05fb993640e6bed579a9e7c69a..7775414cbce12091cdd0ec6a671a3907227456c2 100644
--- a/src/sbbs3/newuser.cpp
+++ b/src/sbbs3/newuser.cpp
@@ -85,7 +85,7 @@ bool sbbs_t::newuser()
 		logline(LOG_NOTICE, "N!", useron.comment);
 	}
 
-	SAFECOPY(useron.modem, connection);
+	SAFECOPY(useron.connection, connection);
 	if (!lastuser(&cfg)) {   /* Automatic sysop access for first user */
 		bprintf("Creating sysop account... System password required.\r\n");
 		if (!chksyspass())
@@ -455,7 +455,7 @@ bool sbbs_t::newuser()
 		menu("../feedback", P_NOABORT | P_NOERROR);
 		safe_snprintf(str, sizeof(str), text[NewUserFeedbackHdr]
 		              , nulstr, getage(&cfg, useron.birth), useron.sex, useron.birth
-		              , useron.name, useron.phone, useron.comp, useron.modem);
+		              , useron.name, useron.phone, useron.comp, useron.connection);
 		email(cfg.valuser, str, text[NewUserValEmailSubj], WM_SUBJ_RO | WM_FORCEFWD);
 		if (!useron.fbacks && !useron.emails) {
 			if (online) {                        /* didn't hang up */
diff --git a/src/sbbs3/sbbs.h b/src/sbbs3/sbbs.h
index eb76e04c7c3821261a6225f36da2f755eaf058a4..549ea19b2f1931f9f86bf8dfb2d7f1c169f2daf1 100644
--- a/src/sbbs3/sbbs.h
+++ b/src/sbbs3/sbbs.h
@@ -613,7 +613,7 @@ public:
 	size_t	keybuf_level(void);
 
 	ushort	node_connection = NODE_CONNECTION_TELNET;
-	char	connection[LEN_MODEM+1];	/* Connection Description */
+	char	connection[LEN_CONNECTION+1];	/* Connection Description */
 	uint	cur_rate=0;		/* Current Connection (DCE) Rate */
 	uint	cur_cps=10000;	/* Current Average Download CPS */
 	uint	dte_rate=0;		/* Current COM Port (DTE) Rate */
diff --git a/src/sbbs3/sbbsdefs.h b/src/sbbs3/sbbsdefs.h
index 260192b728e7a784779206b780b64a874b282b00..9672f683a6ee5ea1467d8dccba26cb194283fb0d 100644
--- a/src/sbbs3/sbbsdefs.h
+++ b/src/sbbs3/sbbsdefs.h
@@ -530,7 +530,7 @@ typedef enum {                      /* Values for xtrn_t.event				*/
 #define LEN_ADDRESS     30  /* User address 								*/
 #define LEN_LOCATION    30  /* Location (City, State)						*/
 #define LEN_ZIPCODE     10  /* Zip/Postal code								*/
-#define LEN_MODEM        8  /* User modem type description					*/
+#define LEN_CONNECTION  8   /* Connection description                       */
 #define LEN_FDESC       58  /* File description (summary) 					*/
 #define LEN_EXTDESC     5000    /* Extended file description				*/
 #define LEN_TITLE       70  /* Message title								*/
@@ -937,7 +937,7 @@ typedef struct {                        /* Users information */
 	     pass[LEN_PASS + 1],            /* Password - not case sensitive */
 	     birth[LEN_BIRTH + 1],          /* Birthday in MM/DD/YY format */
 	     phone[LEN_PHONE + 1],          /* Phone number xxx-xxx-xxxx format */
-	     modem[LEN_MODEM + 1],          /* Modem type - 8 chars max */
+	     connection[LEN_CONNECTION + 1],/* Connection type - 8 chars max */
 	     netmail[LEN_NETMAIL + 1],      /* NetMail forwarding address */
 	     tmpext[MAX_FILEEXT_LEN + 1],   /* QWK Packet / Temp file type */
 	     comment[LEN_COMMENT + 1],      /* Private comment about user */
diff --git a/src/sbbs3/services.c b/src/sbbs3/services.c
index ba58e0921b6518e3de70d41afffa23fe3ea7d2d0..78d0f93abe2e872979e33f9d41178eb0a95e82f6 100644
--- a/src/sbbs3/services.c
+++ b/src/sbbs3/services.c
@@ -487,7 +487,7 @@ js_login(JSContext *cx, uintN argc, jsval *arglist)
 		SAFECOPY(client->user.ipaddr, client->client->addr);
 		SAFECOPY(client->user.comp, client->client->host);
 		if (!(client->service->options & SERVICE_OPT_NO_USER_PROT))
-			SAFECOPY(client->user.modem, client->service->protocol);
+			SAFECOPY(client->user.connection, client->service->protocol);
 	}
 
 	if (inc_logons) {
diff --git a/src/sbbs3/str.cpp b/src/sbbs3/str.cpp
index 2e210ec55208f39c0a80155645beb54bd9961964..bb0e1cd7cc3ce4820462cbb63ebb4f9141c60397 100644
--- a/src/sbbs3/str.cpp
+++ b/src/sbbs3/str.cpp
@@ -218,14 +218,14 @@ void sbbs_t::userlist(int mode)
 			snprintf(line[j], 128, text[UserListFmt], name
 			         , cfg.sys_misc & SM_LISTLOC ? user.location : user.note
 			         , datestr(user.laston, tmp)
-			         , user.modem);
+			         , user.connection);
 		}
 		else {
 			snprintf(name, sizeof name, "%s #%u", user.alias, i);
 			bprintf(text[UserListFmt], name
 			        , cfg.sys_misc & SM_LISTLOC ? user.location : user.note
 			        , datestr(user.laston, tmp)
-			        , user.modem);
+			        , user.connection);
 		}
 		j++;
 	}
diff --git a/src/sbbs3/uedit/uedit.c b/src/sbbs3/uedit/uedit.c
index aa26fa3eb2bfd95e85120ea94056252ef26385c7..930ba80ce8e32d138638be1d0959a1d54c4b833d 100644
--- a/src/sbbs3/uedit/uedit.c
+++ b/src/sbbs3/uedit/uedit.c
@@ -1441,7 +1441,7 @@ int edit_personal(scfg_t *cfg, user_t *user)
 		sprintf(opt[i++],"Postal/Zip  %s",user->zipcode);
 		sprintf(opt[i++],"Phone       %s",user->phone);
 		sprintf(opt[i++],"Computer    %s",user->comp);
-		sprintf(opt[i++],"Connection  %s",user->modem);
+		sprintf(opt[i++],"Connection  %s",user->connection);
 		sprintf(opt[i++],"IP Address  %s",user->ipaddr);
 		sprintf(opt[i++],"Password    %s",user->pass);
 		sprintf(opt[i++],"Note        %s",user->note);
@@ -1537,9 +1537,9 @@ int edit_personal(scfg_t *cfg, user_t *user)
             case 11:
 				/* Connection */
 				GETUSERDAT(cfg,user);
-				uifc.input(WIN_MID|WIN_ACT|WIN_SAV,0,0,"Connection",user->modem,LEN_MODEM,K_EDIT);
+				uifc.input(WIN_MID|WIN_ACT|WIN_SAV,0,0,"Connection",user->connection, sizeof user->connection, K_EDIT);
 				if(uifc.changes)
-					putuserstr(cfg, user->number, USER_CONNECTION, user->modem);
+					putuserstr(cfg, user->number, USER_CONNECTION, user->connection);
 				break;
 			case 12:
 				/* IP Address */
diff --git a/src/sbbs3/upgrade_to_v320.c b/src/sbbs3/upgrade_to_v320.c
index 2b0faedf9cf2eb663a3fe313106eeba1ad2035a0..46ce2158ac6e9f27e7e3dfaeffb4e26a4d1763c1 100644
--- a/src/sbbs3/upgrade_to_v320.c
+++ b/src/sbbs3/upgrade_to_v320.c
@@ -285,7 +285,7 @@ static int v31x_parseuserdat(scfg_t* cfg, char *userdat, user_t *user)
 		getrec(userdat, U_OLDPASS, LEN31x_OLDPASS, user->pass);
 	getrec(userdat, U_PHONE, LEN31x_PHONE, user->phone);
 	getrec(userdat, U_BIRTH, LEN31x_BIRTH, user->birth);
-	getrec(userdat, U_MODEM, LEN31x_MODEM, user->modem);
+	getrec(userdat, U_MODEM, LEN31x_MODEM, user->connection);
 	getrec(userdat, U_IPADDR, LEN31x_IPADDR, user->ipaddr);
 	getrec(userdat, U_LASTON, 8, str); user->laston = ahtoul(str);
 	getrec(userdat, U_FIRSTON, 8, str); user->firston = ahtoul(str);
diff --git a/src/sbbs3/userdat.c b/src/sbbs3/userdat.c
index 7ac89ff9c3a5b4fc10c4d8258e320b4621859010..dd3891774b6cd5704dabca60c28f84e396bb5f57 100644
--- a/src/sbbs3/userdat.c
+++ b/src/sbbs3/userdat.c
@@ -464,7 +464,7 @@ int parseuserdat(scfg_t* cfg, char *userdat, user_t *user, char* field[])
 	SAFECOPY(user->birth, field[USER_BIRTH]);
 	user->sex = *field[USER_GENDER];
 	SAFECOPY(user->comment, field[USER_COMMENT]);
-	SAFECOPY(user->modem, field[USER_CONNECTION]);
+	SAFECOPY(user->connection, field[USER_CONNECTION]);
 
 	user->misc = (uint32_t)strtoul(field[USER_MISC], NULL, 16);
 	user->qwk = (uint32_t)strtoul(field[USER_QWK], NULL, 16);
@@ -753,7 +753,7 @@ bool format_userdat(scfg_t* cfg, user_t* user, char userdat[])
 	                   , user->birth
 	                   , user->sex ? user->sex : '?'
 	                   , user->comment
-	                   , user->modem
+	                   , user->connection
 	                   , user->misc
 	                   , user->qwk
 	                   , user->chat
@@ -2598,7 +2598,7 @@ static bool ar_exp(scfg_t* cfg, uchar **ptrptr, user_t* user, client_t* client)
 				if (client != NULL)
 					p = client->protocol;
 				else if (user != NULL)
-					p = user->modem;
+					p = user->connection;
 				else
 					p = NULL;
 				if (!findstr_in_string(p, (char*)*ptrptr))
@@ -3518,7 +3518,7 @@ size_t user_field_len(enum user_field fnum)
 		case USER_BIRTH:    return sizeof(user.birth) - 1;
 		case USER_GENDER:   return sizeof(user.sex);
 		case USER_COMMENT:  return sizeof(user.comment) - 1;
-		case USER_CONNECTION: return sizeof(user.modem) - 1;
+		case USER_CONNECTION: return sizeof(user.connection) - 1;
 
 		// Bit-fields:
 		case USER_MISC:     return sizeof(user.misc);
diff --git a/src/sbbs3/useredit.cpp b/src/sbbs3/useredit.cpp
index 1bfd80a0a63136ebc6ee3e6d956ad483cc9875f3..ffa67d1164d3f4f860ea140089ec1cffc472a1f7 100644
--- a/src/sbbs3/useredit.cpp
+++ b/src/sbbs3/useredit.cpp
@@ -100,7 +100,7 @@ void sbbs_t::useredit(int usernumber)
 		        , format_birthdate(&cfg, user.birth, tmp, sizeof(tmp)));
 		bprintf(text[UeditLocationZipcode], user.location, user.zipcode);
 		bprintf(text[UeditNoteHandle], user.note, user.handle);
-		bprintf(text[UeditComputerModem], user.comp, user.modem);
+		bprintf(text[UeditComputerModem], user.comp, user.connection);
 		bprintf(text[UserIpAddr], user.ipaddr);
 		if (user.netmail[0])
 			bprintf(text[UserNetMail], user.netmail);
diff --git a/src/sbbs3/useredit/MainFormUnit.cpp b/src/sbbs3/useredit/MainFormUnit.cpp
index 8d9d3cc36f08e3ba70b741b3cf286de57911755a..484b85e649bfa3f3ca0792380d07d2c0d9f84a82 100644
--- a/src/sbbs3/useredit/MainFormUnit.cpp
+++ b/src/sbbs3/useredit/MainFormUnit.cpp
@@ -153,7 +153,7 @@ void __fastcall TMainForm::GetUserData(int number)
     GetUserText(LocationEdit, user.location);
     GetUserText(ZipCodeEdit, user.zipcode);
     GetUserText(PhoneEdit, user.phone);
-    GetUserText(ModemEdit, user.modem);
+    GetUserText(ModemEdit, user.connection);
     GetUserText(CommentEdit, user.comment);
     GetUserText(PasswordEdit, user.pass);
     GetUserText(NoteEdit, user.note);
diff --git a/src/sbbs3/websrvr.c b/src/sbbs3/websrvr.c
index 9bca9fb0d1dd926893d2c60885fb339af9a66489..450e9c70a3729cdf79ad6f60d60e1b39015eb8db 100644
--- a/src/sbbs3/websrvr.c
+++ b/src/sbbs3/websrvr.c
@@ -1675,7 +1675,7 @@ void http_logon(http_session_t * session, user_t *usr)
 	else {
 		SAFECOPY(session->username, session->user.alias);
 		/* Adjust Connect and host */
-		SAFECOPY(session->user.modem, session->client.protocol);
+		SAFECOPY(session->user.connection, session->client.protocol);
 		SAFECOPY(session->user.comp, session->host_name);
 		SAFECOPY(session->user.ipaddr, session->host_ip);
 		session->user.logontime = (time32_t)session->logon_time;