diff --git a/error/dw_error.c b/error/dw_error.c
index 7cf54ddc09edd00952097b234698bb26cea154a8..bc3874aaf893686472f228ed71ec1c1f081eeaed 100644
--- a/error/dw_error.c
+++ b/error/dw_error.c
@@ -263,23 +263,26 @@ int dw_CreateErrorMessageFile(char *filename)
     dw_ConsoleErrorMessage();
   else
     {
-      if (f_err) close(f_err);
+      if (f_err) fclose(f_err);
       if (filename_err) dw_free(filename_err);
       if (f_err=fopen(filename,"wt"))
-	{
-	  if (filename_err=(char*)malloc(strlen(filename)+1))
+	if (filename_err=(char*)malloc(strlen(filename)+1))
+	  {
 	    strcpy(filename_err,filename);
-	  else
+	    return 1;
+	  }
+	else
+	  {
 	    dw_Error(MEM_ERR);
-	  return 1;
-	}
+	    dw_ConsoleErrorMessage();
+	  }
       else
 	{
 	  filename_err=(char*)NULL;
 	  dw_FileError(FILE_OPEN_ERR,filename);
-	  return 0;
 	}
     }
+  return 0;
 }
 
 /*
@@ -292,23 +295,26 @@ int dw_AppendErrorMessageFile(char *filename)
     dw_ConsoleErrorMessage();
   else
     {
-      if (f_err) close(f_err);
+      if (f_err) fclose(f_err);
       if (filename_err) dw_free(filename_err);
       if (f_err=fopen(filename,"at"))
-	{
-	  if (filename_err=(char*)malloc(strlen(filename)+1))
+	if (filename_err=(char*)malloc(strlen(filename)+1))
+	  {
 	    strcpy(filename_err,filename);
-	  else
+	    return 1;
+	  }
+	else
+	  {
 	    dw_Error(MEM_ERR);
-	  return 1;
-	}
+	    dw_ConsoleErrorMessage();
+	  }
       else
 	{
 	  filename_err=(char*)NULL;
 	  dw_FileError(FILE_OPEN_ERR,filename);
-	  return 0;
 	}
     }
+  return 0;
 }
 
 /*
@@ -316,7 +322,7 @@ int dw_AppendErrorMessageFile(char *filename)
 */
 void dw_ConsoleErrorMessage(void)
 {
-  if (f_err) close(f_err);
+  if (f_err) fclose(f_err);
   if (filename_err) dw_free(filename_err);
   f_err=(FILE*)NULL;
   filename_err=(char*)NULL;