--- xteddy-2.1/xteddy.c.orig	2005-05-25 08:11:37.000000000 +0200
+++ xteddy-2.1/xteddy.c	2008-11-07 20:18:01.000000000 +0100
@@ -140,7 +140,7 @@
   XClassHint           class_hints;
   XTextProperty        windowName;
   int                  argnum;
-  int                  use_wm, float_up, allow_quit;
+  int                  use_wm, float_up, allow_quit, cursor_blank;
   XEvent               report;
   char                *display_name = NULL;
   char                 buffer[20];
@@ -169,14 +169,15 @@
   teddy = progname;
 
 
-  /* Option handling: "-wm", "-float", "-noquit", "-geometry" */
-  /* and "-display" are recognized. See manual page for details. */
+  /* Option handling: "-wm", "-float", "-noquit", "-geometry", */
+  /* "-display" and "-nocursor" are recognized. See manual page for details. */
   /* -F<name> ... Other pixmap name */
   /* -F or -f are equivalent. A space may be included if desired after the option (eg "-f xduck") */
   /* -v prints version. -h or --help prints help */
   use_wm = FALSE;
   float_up = FALSE;
   allow_quit = TRUE;
+  cursor_blank = FALSE;
   x = y = 0;
   geomflags = 0;
   for ( argnum = 1; argnum < argc; argnum++ ) {
@@ -190,6 +191,8 @@
       geomflags = XParseGeometry(argv[++argnum], &x, &y, &xw, &xh);
     if (!strcmp(argv[argnum],"-display"))
       display_name = argv[++argnum];
+    if (!strcmp(argv[argnum],"-nocursor"))
+      cursor_blank = TRUE;
     /* Use -f or -F; -f seems more natural. But -float does not mean "-f loat" ! */
     if ( (!strncmp(argv[argnum],"-F", 2)) || ( (!strncmp(argv[argnum],"-f", 2)) && (strcmp(argv[argnum],"-float")) ) )
       teddy = argv[argnum] + 2;
@@ -266,7 +269,24 @@
     setwinattr.override_redirect = FALSE;
   else
     setwinattr.override_redirect = TRUE;
-  cursor = XCreateFontCursor(display, XC_heart);
+
+  if (cursor_blank)
+    {
+      Pixmap blank;
+      XColor dummy;
+      const char data[1] = { 0 };
+      blank = XCreateBitmapFromData (display, win, data, 1, 1);
+      if (blank == None)
+        {
+          fprintf (stderr, "error: out of memory.\n");
+          exit (1);
+        }
+      cursor = XCreatePixmapCursor (display, blank, blank, &dummy, &dummy, 0, 0);
+      XFreePixmap (display , blank);
+    }
+  else
+    cursor = XCreateFontCursor(display, XC_heart);
+
   setwinattr.cursor = cursor;
   valuemask = CWOverrideRedirect | CWCursor;
   XChangeWindowAttributes(display, win, valuemask, &setwinattr);
--- xteddy-2.1/xteddy.6.orig	2008-11-07 20:19:42.000000000 +0100
+++ xteddy-2.1/xteddy.6	2008-11-07 20:20:48.000000000 +0100
@@ -4,7 +4,7 @@
 .SH SYNOPSIS
 .B xteddy
 [
-.B \-wm \-float \-noquit \-F<file>
+.B \-wm \-float \-noquit \-nocursor \-F<file>
 ]
 .br
 [
@@ -62,6 +62,11 @@
 window. I you use the -wm option in conjunction with a click-to-type
 window manager, you would probably want to include this option.
 .TP
+.B \-nocursor
+Disable the X11 cursor over the
+.I xteddy
+window.
+.TP
 .B \-F,\-f
 <
 .I file
