diff --git a/src/sbbs3/sbbs3.sln b/src/sbbs3/sbbs3.sln
index bf9c6487d26c812261ea9c2ea3ae9d2fe2138a6d..e5a89d1665048de5e8251343459b5224d5154e9d 100644
--- a/src/sbbs3/sbbs3.sln
+++ b/src/sbbs3/sbbs3.sln
@@ -64,6 +64,9 @@ EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "smbutil", "smbutil.vcxproj", "{D9C78CF8-0F08-417B-A242-22B86626F00D}"
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "textgen", "textgen.vcxproj", "{A41D7A4A-2173-4DF6-96AF-9575C069CA8A}"
+	ProjectSection(ProjectDependencies) = postProject
+		{7428A1E8-56B7-4868-9C0E-29D031689FEB} = {7428A1E8-56B7-4868-9C0E-29D031689FEB}
+	EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "uifc", "..\uifc\uifc.vcxproj", "{7BFB9820-0E57-4BE4-9BE9-E0A687874E19}"
 EndProject
diff --git a/src/sbbs3/text_defaults.c b/src/sbbs3/text_defaults.c
index e6686e3de65123819bbd002cf22c53cd161f0a7b..04a81b1de262606448d1ebf518472965cf41027a 100644
--- a/src/sbbs3/text_defaults.c
+++ b/src/sbbs3/text_defaults.c
@@ -1364,8 +1364,7 @@ const char * const text_defaults[TOTAL_TEXT]={
 		"\x53\x40\x20\x40\x45\x4c\x4c\x49\x50\x53\x49\x53\x40\x01\x6e\x0d\x0a\x40\x52\x45\x53\x45\x54\x50\x41\x55\x53\x45\x40" // 826 LoggingOn
 	,"\x01\x6e\x01\x62\x5b\x01\x68\x01\x77\x55\x01\x6e\x01\x62\x5d\x20\x01\x68\x49\x6e\x63\x6c\x75\x64\x65\x20\x55\x54\x46\x2d\x38\x20"
 		"\x43\x68\x61\x72\x61\x63\x74\x65\x72\x73\x20\x20\x20\x20\x20\x01\x6e\x01\x62\x3a\x20\x01\x63\x25\x73\x0d\x0a" // 827 QWKSettingsUtf8
-	,"\x01\x6e\x01\x6d\x01\x68\x25\x73\x01\x6e\x01\x6d\x20\x70\x6f\x73\x74\x65\x64\x20\x61\x20\x6d\x65\x73\x73\x61\x67\x65\x20\x74\x6f"
-		"\x20\x79\x6f\x75\x20\x76\x69\x61\x20\x01\x68\x25\x73\x01\x6e\x01\x6d\x0d\x0a\x6f\x6e\x20\x01\x68\x25\x73\x20\x01\x6e\x01\x6d\x25"
-		"\x73\x0d\x0a" // 828 MsgPostedToYouVia
+	,"\x01\x6e\x01\x6d\x01\x68\x25\x73\x01\x6e\x01\x6d\x25\x2e\x30\x73\x20\x70\x6f\x73\x74\x65\x64\x20\x74\x6f\x20\x79\x6f\x75\x20\x6f"
+		"\x6e\x20\x01\x68\x25\x73\x20\x01\x6e\x01\x6d\x25\x73\x0d\x0a" // 828 MsgPostedToYouVia
 	,"\x75\x6e\x6c\x69\x6d\x69\x74\x65\x64" // 829 Unlimited
 };
diff --git a/src/sbbs3/textgen.c b/src/sbbs3/textgen.c
index c66895883c7f31370a9354947ff8a94a9e191a13..3f3f1e045c57852ad77c2f5017160373391b4ba1 100644
--- a/src/sbbs3/textgen.c
+++ b/src/sbbs3/textgen.c
@@ -2,34 +2,10 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
+#include "sbbs.h"
 #include "dirwrap.h"	// MAX_PATH
 #include "gen_defs.h"
 
-/****************************************************************************/
-/* Converts an ASCII Hex string into an ulong                               */
-/* by Steve Deppe (Ille Homine Albe)										*/
-/****************************************************************************/
-/* Copied from str_util.c */
-ulong ahtoul(char *str)
-{
-    ulong l,val=0;
-
-	while((l=(*str++)|0x20)!=0x20)
-		val=(l&0xf)+(l>>6&1)*9+val*16;
-	return(val);
-}
-
-void truncsp(char* str)
-{
-	char* cp=strchr(str, 0);
-	if(cp && cp > str) {
-		cp--;
-		while(cp > str && isspace(*cp)) {
-			*(cp--)=0;
-		}
-	}
-}
-
 /****************************************************************************/
 /* Reads special TEXT.DAT printf style text lines, splicing multiple lines, */
 /* replacing escaped characters, and allocating the memory					*/
diff --git a/src/sbbs3/textgen.vcxproj b/src/sbbs3/textgen.vcxproj
index bba202779e4ef24b344141368c530391a4b5eff9..86ecc88d2b5fd4a4dbb9c5ca5fe3f30aad9bbf6a 100644
--- a/src/sbbs3/textgen.vcxproj
+++ b/src/sbbs3/textgen.vcxproj
@@ -36,6 +36,9 @@
     <Import Project="..\xpdev\xpdev.props" />
     <Import Project="..\build\undeprecate.props" />
     <Import Project="..\build\target_ia32.props" />
+    <Import Project="..\smblib\smblib.props" />
+    <Import Project="..\hash\hash.props" />
+    <Import Project="..\encode\encode.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
@@ -43,6 +46,9 @@
     <Import Project="..\xpdev\xpdev.props" />
     <Import Project="..\build\undeprecate.props" />
     <Import Project="..\build\target_ia32.props" />
+    <Import Project="..\smblib\smblib.props" />
+    <Import Project="..\hash\hash.props" />
+    <Import Project="..\encode\encode.props" />
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup>
@@ -63,7 +69,7 @@
     <ClCompile>
       <Optimization>Disabled</Optimization>
       <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PreprocessorDefinitions>WIN32;SBBS_EXPORTS;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
       <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
       <PrecompiledHeaderOutputFile>.\msvc.win32.debug\textgen/textgen.pch</PrecompiledHeaderOutputFile>
@@ -111,7 +117,7 @@
       <Optimization>MaxSpeed</Optimization>
       <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
       <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PreprocessorDefinitions>WIN32;SBBS_EXPORTS;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <StringPooling>true</StringPooling>
       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
       <FunctionLevelLinking>true</FunctionLevelLinking>
@@ -149,6 +155,8 @@
     </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemGroup>
+    <ClCompile Include="..\encode\utf8.c" />
+    <ClCompile Include="str_util.c" />
     <ClCompile Include="textgen.c">
       <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
@@ -156,6 +164,11 @@
       <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
     </ClCompile>
   </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\xpdev\xpdev.vcxproj">
+      <Project>{7428a1e8-56b7-4868-9c0e-29d031689feb}</Project>
+    </ProjectReference>
+  </ItemGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   </ImportGroup>