diff --git a/src/sbbs3/sbbs_ini.c b/src/sbbs3/sbbs_ini.c
index 12acaf16b96773c25254733f3a5157ff0fc811bd..daa737ccb69b71d3928f4b3d244429660aadaf3b 100644
--- a/src/sbbs3/sbbs_ini.c
+++ b/src/sbbs3/sbbs_ini.c
@@ -309,7 +309,13 @@ void sbbs_read_ini(
 			=iniGetShortInt(list,section,"LastNode",4);
 
 		bbs->outbuf_highwater_mark
-			=iniGetShortInt(list,section,"OutbufHighwaterMark",1024);
+			=iniGetShortInt(list,section,"OutbufHighwaterMark"
+#ifdef TCP_MAXSEG	/* Auto-tune if possible.  Would this be defined here? */
+			,0
+#else
+			,1024
+#endif
+			);
 		bbs->outbuf_drain_timeout
 			=iniGetShortInt(list,section,"OutbufDrainTimeout",10);
 
@@ -611,7 +617,13 @@ void sbbs_read_ini(
 			=iniGetBitField(list,section,strOptions,web_options
 				,BBS_OPT_NO_HOST_LOOKUP | WEB_OPT_HTTP_LOGGING);
 		web->outbuf_highwater_mark
-			=iniGetShortInt(list,section,"OutbufHighwaterMark",1024);
+			=iniGetShortInt(list,section,"OutbufHighwaterMark"
+#ifdef TCP_MAXSEG	/* Auto-tune if possible.  Would this be defined here? */
+			,0
+#else
+			,1024
+#endif
+			);
 		web->outbuf_drain_timeout
 			=iniGetShortInt(list,section,"OutbufDrainTimeout",10);