diff --git a/dlls/msvcrt/file.c b/dlls/msvcrt/file.c
index a49f6938733e86a6042218cc37fb3bd011886d15..46700ffcb4a131fd0cb21767cc654798279f3b00 100644
--- a/dlls/msvcrt/file.c
+++ b/dlls/msvcrt/file.c
@@ -1412,6 +1412,7 @@ char *_tempnam(const char *dir, const char *prefix)
   if (GetTempFileNameA(dir,prefix,0,tmpbuf))
   {
     TRACE("got name (%s)\n",tmpbuf);
+    DeleteFileA(tmpbuf);
     return _strdup(tmpbuf);
   }
   TRACE("failed (%ld)\n",GetLastError());
@@ -1429,6 +1430,7 @@ MSVCRT_wchar_t *_wtempnam(const MSVCRT_wchar_t *dir, const MSVCRT_wchar_t *prefi
   if (GetTempFileNameW(dir,prefix,0,tmpbuf))
   {
     TRACE("got name (%s)\n",debugstr_w(tmpbuf));
+    DeleteFileW(tmpbuf);
     return _wcsdup(tmpbuf);
   }
   TRACE("failed (%ld)\n",GetLastError());