Index: src/cheat.c
===================================================================
--- src/cheat.c	(revision 3775)
+++ src/cheat.c	(working copy)
@@ -69,6 +69,7 @@
 	{"tileinfo", kf_TileInfo}, // output debug info about a tile
 	{"showfps", kf_ToggleFPS},	//displays your average FPS
 	{"showsamples", kf_ToggleSamples}, //displays the # of Sound samples in Queue & List
+	{"showorders", kf_ToggleOrders}, //displays unit order/action state.
 	{"end of list",NULL}
 };
 
Index: src/display.c
===================================================================
--- src/display.c	(revision 3775)
+++ src/display.c	(working copy)
@@ -82,6 +82,8 @@
 #define POSSIBLE_SELECTIONS		13
 #define POSSIBLE_TARGETS		23
 
+extern char DROIDDOING[512];  // what our droid is doing buffer
+
 UDWORD	arnMPointers[POSSIBLE_TARGETS][POSSIBLE_SELECTIONS] =
 {
 // empty terrain tile
@@ -1683,6 +1685,9 @@
 {
 	if(psDroid->player != selectedPlayer)
 	{
+	    // take over the other players (AI) droids via debug menu.
+		// must clear string since unit isn't selected anymore.
+		strcpy(DROIDDOING, "");
 		/* We've clicked on somebody else's droid */
 //		addConsoleMessage("Clicked on another player's droid",DEFAULT_JUSTIFY);
 		orderSelectedObjAdd(selectedPlayer, (BASE_OBJECT*)psDroid, ctrlShiftDown());
@@ -2567,6 +2572,9 @@
 			{
 				clearSelection();
 				intObjectSelected(NULL);
+				// must clear string since unit isn't selected anymore.
+				strcpy(DROIDDOING, "");
+
 			}
 		}
 	}
Index: src/display3d.c
===================================================================
--- src/display3d.c	(revision 3775)
+++ src/display3d.c	(working copy)
@@ -211,8 +211,9 @@
 
 bool showFPS = false;       // default OFF, turn ON via console command 'showfps'
 bool showSAMPLES = false;   // default OFF, turn ON via console command 'showsamples'
+bool showORDERS = false;	// default OFF, turn ON via console command 'showorders'
 UDWORD geoOffset;
-
+char DROIDDOING[512];		// tells us what droid is doing.
 static int averageCentreTerrainHeight;
 
 static UDWORD	lastTargetAssignation = 0;
@@ -369,6 +370,13 @@
 
 		iV_DrawText(fps, pie_GetVideoBufferWidth() - width, pie_GetVideoBufferHeight() - height);
 	}
+	if (showORDERS)
+	{ // Not sure best placement for this text.
+		unsigned int width, height;				//unused for now.
+		width = iV_GetTextWidth(DROIDDOING);
+		height = iV_GetTextHeight(DROIDDOING);
+		iV_DrawText(DROIDDOING, 0, pie_GetVideoBufferHeight() );
+	}
 	if(getDebugMappingStatus() && !demoGetStatus() && !gamePaused())
 	{
 		iV_DrawText( "DEBUG ", RET_X + 134, 440 + E_H );
Index: src/display3d.h
===================================================================
--- src/display3d.h	(revision 3775)
+++ src/display3d.h	(working copy)
@@ -43,6 +43,7 @@
 
 extern bool showFPS;
 extern bool showSAMPLES;
+extern bool showORDERS;
 
 extern void	setViewAngle(SDWORD angle);
 extern UDWORD getViewDistance(void);
Index: src/keybind.c
===================================================================
--- src/keybind.c	(revision 3775)
+++ src/keybind.c	(working copy)
@@ -378,6 +378,13 @@
 
 	CONPRINTF(ConsoleString, (ConsoleString, "Sound Samples displayed is %s", showSAMPLES ? "Enabled" : "Disabled"));
 }
+void kf_ToggleOrders(void) //Displays orders & action of currently selected unit.
+{
+	// Toggle the boolean value of showFPS
+	showORDERS = !showORDERS;
+
+	CONPRINTF(ConsoleString, (ConsoleString, "Unit Order/Action displayed is %s", showORDERS ? "Enabled" : "Disabled"));
+}
 /* Writes out the frame rate */
 void	kf_FrameRate( void )
 {
Index: src/keybind.h
===================================================================
--- src/keybind.h	(revision 3775)
+++ src/keybind.h	(working copy)
@@ -26,6 +26,7 @@
 extern void	kf_BuildInfo( void );
 extern void	kf_ToggleFPS(void);		//FPS counter NOT same as kf_Framerate! -Q
 extern void kf_ToggleSamples(void);	//displays # of sound samples in Q/list.
+extern void kf_ToggleOrders(void);	//displays unit's Order/action state.
 extern void	kf_FrameRate( void );
 extern void	kf_ShowNumObjects( void );
 extern void	kf_ToggleRadar( void );
Index: src/order.c
===================================================================
--- src/order.c	(revision 3775)
+++ src/order.c	(working copy)
@@ -103,7 +103,7 @@
 
 // whether an order effect has been displayed
 static BOOL bOrderEffectDisplayed = FALSE;
-
+extern char DROIDDOING[512];		// what our droid is doing buffer
 //////////////////////////////////////////////////////////////////
 
 //////////////////////////////////////////////////////////////////
@@ -1242,6 +1242,11 @@
 		psDroid->order = DORDER_REARM;
 		setDroidTarget(psDroid, psDroid->psActionTarget[0]);
 	}
+	if(psDroid->selected)
+	{	// Tell us what the droid is doing.
+		snprintf(DROIDDOING,sizeof(DROIDDOING),"%.12s, order(%d):%s action(%d):%s",droidGetName(psDroid),psDroid->order,
+		 getDroidOrderName(psDroid->order),psDroid->action,getDroidActionName(psDroid->action));
+	}
 }
 
 
