Index: JwsclCredentials.pas
===================================================================
--- JwsclCredentials.pas	(revision 1006)
+++ JwsclCredentials.pas	(working copy)
@@ -415,17 +415,19 @@
   pUser := TJwPChar(LocalAlloc(LMEM_ZEROINIT, fMaxUserNameLength *
     sizeof(TJwChar)));
   {$IFDEF UNICODE}
-      CopyMemory(pUser,TJwPChar(fUserName),Length(fUserName)*sizeof(TJwChar));
+  CopyMemory(pUser, TJwPChar(fUserName),
+    Min(fMaxUserNameLength-1, Length(fUserName)) * sizeof(TJwChar));
   {$ELSE}
-  StrCopy(pUser, TJwPChar(fUserName + #0));
+  StrLCopy(pUser, TJwPChar(fUserName), fMaxUserNameLength-1);
   {$ENDIF}
 
   pPass := TJwPChar(LocalAlloc(LMEM_ZEROINIT, fMaxPasswordLength *
     sizeof(TJwChar)));
   {$IFDEF UNICODE}
-      CopyMemory(pPass,TJwPChar(fPassword),Length(fPassword)*sizeof(TJwChar));
+  CopyMemory(pPass, TJwPChar(fPassword),
+    Min(fMaxPasswordLength-1, Length(fPassword)) * sizeof(TJwChar));
   {$ELSE}
-  StrCopy(pPass, TJwPChar(fPassword + #0));
+  StrLCopy(pPass, TJwPChar(fPassword), fMaxPasswordLength-1);
   {$ENDIF}
 
 
