diff --git a/lustre/ChangeLog b/lustre/ChangeLog
index b387525e81094619f40fa8ac7ad9f3ef6ad698a1..1151ea48877dffc1d084ecd3333546e80170795e 100644
--- a/lustre/ChangeLog
+++ b/lustre/ChangeLog
@@ -44,6 +44,11 @@ Details    : "lfs find -obd UUID" will return all directory names instead
              of just file names. It is incorrect because the directories
              do not reside on the OSTs.
 
+Severity   : normal
+Bugzilla   : 13596
+Description: MDS hang after unclean shutdown of lots of clients
+Details    : Never resend AST requests.
+
 --------------------------------------------------------------------------------
 
 2007-09-27         Cluster File Systems, Inc. <info@clusterfs.com>
diff --git a/lustre/ldlm/ldlm_lockd.c b/lustre/ldlm/ldlm_lockd.c
index acc5b3267523324545b6c9d06b784b0cf7a4645c..011cd703ca6300d533f08fcc79e7366034cf5718 100644
--- a/lustre/ldlm/ldlm_lockd.c
+++ b/lustre/ldlm/ldlm_lockd.c
@@ -567,6 +567,7 @@ int ldlm_server_blocking_ast(struct ldlm_lock *lock,
         req->rq_async_args.pointer_arg[0] = arg;
         req->rq_async_args.pointer_arg[1] = lock;
         req->rq_interpret_reply = ldlm_cb_interpret;
+        req->rq_no_resend = 1;
 
         lock_res(lock->l_resource);
         if (lock->l_granted_mode != lock->l_req_mode) {
@@ -668,6 +669,7 @@ int ldlm_server_completion_ast(struct ldlm_lock *lock, int flags, void *data)
         req->rq_async_args.pointer_arg[0] = arg;
         req->rq_async_args.pointer_arg[1] = lock;
         req->rq_interpret_reply = ldlm_cb_interpret;
+        req->rq_no_resend = 1;
 
         body = lustre_msg_buf(req->rq_reqmsg, DLM_LOCKREQ_OFF, sizeof(*body));
         body->lock_handle[0] = lock->l_remote_handle;