diff --git a/MagickCore/string.c b/MagickCore/string.c
index 85d2f64..1c9eb85 100644
--- a/MagickCore/string.c
+++ b/MagickCore/string.c
@@ -213,6 +213,9 @@
     *string_info;
 
   string_info=AcquireStringInfo(0);
+  if (string_info->datum != (unsigned char *) NULL)
+    string_info->datum=(unsigned char *) RelinquishMagickMemory(
+      string_info->datum);
   string_info->length=length;
   if (~string_info->length >= (MaxTextExtent-1))
     string_info->datum=(unsigned char *) AcquireQuantumMemory(
@@ -647,6 +650,9 @@
   string[length]='\0';
   file=close(file)-1;
   string_info=AcquireStringInfo(0);
+  if (string_info->datum != (unsigned char *) NULL)
+    string_info->datum=(unsigned char *) RelinquishMagickMemory(
+      string_info->datum);
   (void) CopyMagickString(string_info->path,filename,MaxTextExtent);
   string_info->length=length;
   string_info->datum=(unsigned char *) string;
@@ -1026,6 +1032,9 @@
   (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",filename);
   assert(exception != (ExceptionInfo *) NULL);
   string_info=AcquireStringInfo(0);
+  if (string_info->datum != (unsigned char *) NULL)
+    string_info->datum=(unsigned char *) RelinquishMagickMemory(
+      string_info->datum);
   (void) CopyMagickString(string_info->path,filename,MaxTextExtent);
   string_info->datum=FileToBlob(filename,extent,&string_info->length,exception);
   if (string_info->datum == (unsigned char *) NULL)