diff --git a/Demo/curses/README b/Demo/curses/README
index 7635c3d..f2a3b74 100644
--- a/Demo/curses/README
+++ b/Demo/curses/README
@@ -10,11 +10,11 @@
 I wouldn't mind someone else making an effort in that direction, of
 course.
 
-ncurses.py	-- currently only a panels demo
+ncurses.py      -- currently only a panels demo
                    XXX this won't work until panel support is checked in
-rain.py		-- raindrops keep falling on my desktop
-tclock.py	-- ASCII clock, by Howard Jones
-xmas.py		-- I'm dreaming of an ASCII christmas
+rain.py         -- raindrops keep falling on my desktop
+tclock.py       -- ASCII clock, by Howard Jones
+xmas.py         -- I'm dreaming of an ASCII christmas
 
 Please send bugfixes and new contributions to me or, even better,
 submit them to the Python Bug Tracker on SourceForge
@@ -24,6 +24,5 @@
 Other demos
 ===========
 
-life.py		Simple game of Life
-
-
+life.py         -- Simple game of Life
+repeat.py       -- Repeatedly execute a shell command (like watch(1))
diff --git a/Demo/curses/repeat.py b/Demo/curses/repeat.py
new file mode 100755
index 0000000..158264c
--- /dev/null
+++ b/Demo/curses/repeat.py
@@ -0,0 +1,58 @@
+#! /usr/bin/env python
+
+"""repeat <shell-command>
+
+This simple program repeatedly (with 1-second intervals) executes the
+shell command given on the command line and displays the output (or as
+much of it as fits on the screen).  It uses curses to paint each new
+output on top of the old output, so that if nothing changes, the
+screen doesn't change.  This is handy to watch for changes in e.g. a
+directory or process listing.
+
+To end, hit Control-C.
+"""
+
+# Author: Guido van Rossum
+
+# Disclaimer: there's a Linux program named 'watch' that does the same
+# thing.  Honestly, I didn't know of its existence when I wrote this!
+
+# To do: add features until it has the same functionality as watch(1);
+# then compare code size and development time.
+
+import os
+import sys
+import time
+import curses
+
+def main():
+    if not sys.argv[1:]:
+        print __doc__
+        sys.exit(0)
+    cmd = " ".join(sys.argv[1:])
+    p = os.popen(cmd, "r")
+    text = p.read()
+    sts = p.close()
+    if sts:
+        print >>sys.stderr, "Exit code:", sts
+        sys.exit(sts)
+    w = curses.initscr()
+    try:
+        while 1:
+            w.erase()
+            try:
+                w.addstr(text)
+            except curses.error:
+                pass
+            w.refresh()
+            time.sleep(1)
+            p = os.popen(cmd, "r")
+            text = p.read()
+            sts = p.close()
+            if sts:
+                print >>sys.stderr, "Exit code:", sts
+                sys.exit(sts)
+    finally:
+        curses.endwin()
+
+main()
