diff --git a/src/common/slurm_protocol_api.c b/src/common/slurm_protocol_api.c
index 839433990e29d959aeb29b4fa38fd429b2783ba7..ef243af5c3587873299c338e69b11bb22c08df3b 100644
--- a/src/common/slurm_protocol_api.c
+++ b/src/common/slurm_protocol_api.c
@@ -478,13 +478,15 @@ int slurm_send_node_msg(slurm_fd fd, slurm_msg_t * msg)
         /* 
          * Pack auth credential
          */
-        if (g_slurm_auth_pack(auth_cred, buffer)) {
+        rc = g_slurm_auth_pack(auth_cred, buffer);
+        (void) g_slurm_auth_destroy(auth_cred);
+        if (rc) {
 		error("authentication: %s",
                        g_slurm_auth_errstr(g_slurm_auth_errno(auth_cred)));
         	free_buf(buffer);
 		slurm_seterrno_ret(SLURM_PROTOCOL_AUTHENTICATION_ERROR);
         }
-        (void) g_slurm_auth_destroy(auth_cred);
+ 
 
         
         /*