diff -ur nethack-3.4.3/include/flag.h nethack-3.4.3.eric/include/flag.h
--- nethack-3.4.3/include/flag.h	2003-12-08 00:39:13.000000000 +0100
+++ nethack-3.4.3.eric/include/flag.h	2009-08-11 21:21:07.000000000 +0200
@@ -280,6 +280,7 @@
 #define MAX_ALTKEYHANDLER 25
 	char	 altkeyhandler[MAX_ALTKEYHANDLER];
 #endif
+	boolean  justmove;	/* treat all moves like 'm' moves */
 };
 
 /*
diff -ur nethack-3.4.3/src/hack.c nethack-3.4.3.eric/src/hack.c
--- nethack-3.4.3/src/hack.c	2003-12-08 00:39:13.000000000 +0100
+++ nethack-3.4.3.eric/src/hack.c	2009-08-11 22:49:42.000000000 +0200
@@ -1061,7 +1061,7 @@
 	     * invisible monster--then, we fall through to attack() and
 	     * attack_check(), which still wastes a turn, but prints a
 	     * different message and makes the player remember the monster.		     */
-	    if(flags.nopick &&
+	    if((flags.nopick || (iflags.justmove && !flags.forcefight)) &&
 		  (canspotmon(mtmp) || glyph_is_invisible(levl[x][y].glyph))){
 		if(mtmp->m_ap_type && !Protection_from_shape_changers
 						    && !sensemon(mtmp))
diff -ur nethack-3.4.3/src/options.c nethack-3.4.3.eric/src/options.c
--- nethack-3.4.3/src/options.c	2003-12-08 00:39:13.000000000 +0100
+++ nethack-3.4.3.eric/src/options.c	2009-08-11 21:21:04.000000000 +0200
@@ -195,6 +195,7 @@
 #endif
 	{"verbose", &flags.verbose, TRUE, SET_IN_GAME},
 	{"wraptext", &iflags.wc2_wraptext, FALSE, SET_IN_GAME},
+	{"justmove", &iflags.justmove, FALSE, SET_IN_GAME}, 
 	{(char *)0, (boolean *)0, FALSE, 0}
 };
 

