diff --git a/smp/callback001/Main.hs b/smp/callback001/Main.hs
index 0abdbaf8f36bb68bf36804b3c59f3caa0a9521da..84086319604c79e1a8b0577963fae5ab75d8c703 100644
--- a/smp/callback001/Main.hs
+++ b/smp/callback001/Main.hs
@@ -1,6 +1,14 @@
 {-# OPTIONS_GHC -fffi #-}
 -- This benchmark is also ffi014 in the test suite.
 
+-- This program behaves unpredictably with the non-threaded RTS,
+-- because depending on when the context switches happen it might end
+-- up building a deep stack of callbacks.  When this happens, the run
+-- queue gets full of threads that have finished but cannot exit
+-- because they do not belong to the topmost call to schedule(), and
+-- the scheduler repeatedly traverses the run queue full of these
+-- zombie threads.
+
 module Main where
 
 import Control.Concurrent