diff --git a/CHANGES.txt b/CHANGES.txt
index 82b643a..c65657c 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -639,6 +639,9 @@
     MAPREDUCE-2394. JUnit output format doesn't propagate into raid contrib
     build. (todd)
 
+    MAPREDUCE-2392. TaskTracker shutdown in the tests sometimes take 60s.
+    (tomwhite)
+
 Release 0.21.1 - Unreleased
 
   NEW FEATURES
diff --git a/src/test/mapred/org/apache/hadoop/mapred/MiniMRCluster.java b/src/test/mapred/org/apache/hadoop/mapred/MiniMRCluster.java
index 415db0c..3762f84 100644
--- a/src/test/mapred/org/apache/hadoop/mapred/MiniMRCluster.java
+++ b/src/test/mapred/org/apache/hadoop/mapred/MiniMRCluster.java
@@ -689,7 +689,6 @@
     tracker.shutdown();
 
     Thread thread = taskTrackerThreadList.remove(id);
-    thread.interrupt();
     
     try {
       thread.join();
@@ -752,7 +751,6 @@
         TaskTrackerRunner taskTracker = taskTrackerList.get(idx);
         Thread taskTrackerThread = taskTrackerThreadList.get(idx);
         taskTracker.shutdown();
-        taskTrackerThread.interrupt();
         try {
           taskTrackerThread.join();
         } catch (InterruptedException ex) {
diff --git a/src/test/mapred/org/apache/hadoop/mapred/TestJobRetire.java b/src/test/mapred/org/apache/hadoop/mapred/TestJobRetire.java
index dfc5a44..ac68a15 100644
--- a/src/test/mapred/org/apache/hadoop/mapred/TestJobRetire.java
+++ b/src/test/mapred/org/apache/hadoop/mapred/TestJobRetire.java
@@ -176,6 +176,8 @@
    */
   class WaitingTaskTracker extends TaskTracker {
     
+    private volatile boolean alive = true;
+    
     WaitingTaskTracker(JobConf conf) throws IOException, InterruptedException {
       super(conf);
     }
@@ -185,8 +187,16 @@
       HeartbeatResponse response = super.transmitHeartBeat(now);
       LOG.info("WaitingTaskTracker waiting");
       // wait forever
-      UtilsForTests.waitFor(Long.MAX_VALUE);
-      throw new IOException ("WaitingTaskTracker interrupted. Bailing out");
+      while (alive) {
+        UtilsForTests.waitFor(1000);
+      }
+      throw new IOException ("WaitingTaskTracker shutdown. Bailing out");
+    }
+    
+    @Override
+    public synchronized void shutdown() throws IOException {
+      alive = false;
+      super.shutdown();
     }
   }
   
