diff --git a/src/d2cs/d2charfile.cpp b/src/d2cs/d2charfile.cpp
index 1536647..fa1a680 100644
--- a/src/d2cs/d2charfile.cpp
+++ b/src/d2cs/d2charfile.cpp
@@ -80,8 +80,8 @@ namespace pvpgn
 			bn_short_set((bn_short *)((char *)buffer + D2CHARSAVE_STATUS_OFFSET_109), status);
 
 			// charname
-			std::strncpy((char *)buffer + D2CHARSAVE_CHARNAME_OFFSET_109, new char[MAX_CHARNAME_LEN], MAX_CHARNAME_LEN); // clear first
-			std::strncpy((char *)buffer + D2CHARSAVE_CHARNAME_OFFSET_109, charname, MAX_CHARNAME_LEN); 
+			std::memset(buffer + D2CHARSAVE_CHARNAME_OFFSET_109, '\0', MAX_CHARNAME_LEN); // clear first
+			std::strncpy((char *)buffer + D2CHARSAVE_CHARNAME_OFFSET_109, charname, MAX_CHARNAME_LEN);
 
 			// checksum
 			checksum = d2charsave_checksum((unsigned char *)buffer, size, D2CHARSAVE_CHECKSUM_OFFSET);