diff --git a/ProcessUNIX.c b/ProcessUNIX.c
index b9af2f1f5e76533f28aadc71437405edcf1fe122..faeb9679366acc3ce7fe5affc1fc6f28981007ad 100644
--- a/ProcessUNIX.c
+++ b/ProcessUNIX.c
@@ -2449,6 +2449,7 @@ static void kwsysProcessKill(pid_t process_id)
           if(f)
             {
             size_t nread = fread(buffer, 1, KWSYSPE_PIPE_BUFFER_SIZE, f);
+            fclose(f);
             buffer[nread] = '\0';
             if(nread > 0)
               {
@@ -2463,7 +2464,6 @@ static void kwsysProcessKill(pid_t process_id)
                   }
                 }
               }
-            fclose(f);
             }
           }
         }