diff --git a/src/console.c b/src/console.c
index 5a74c85b67490e6af8e5e06a9a69f7a98fa8fad9..0b55e7e2c53c2982bd55e3a8b75ccfb301a0ca49 100644
--- a/src/console.c
+++ b/src/console.c
@@ -612,15 +612,6 @@ void CON_Ticker(void)
 	con_tick++;
 	con_tick &= 7;
 
-	// if the menu is open then close the console.
-	if (menuactive && con_destlines)
-	{
-		consoletoggle = false;
-		con_destlines = 0;
-		CON_ClearHUD();
-		I_UpdateMouseGrab();
-	}
-
 	// console key was pushed
 	if (consoletoggle)
 	{
@@ -792,7 +783,7 @@ boolean CON_Responder(event_t *ev)
 		// check other keys only if console prompt is active
 		if (!consoleready && key < NUMINPUTS) // metzgermeister: boundary check!!
 		{
-			if (bindtable[key])
+			if (! menuactive && bindtable[key])
 			{
 				COM_BufAddText(bindtable[key]);
 				COM_BufAddText("\n");
@@ -1551,9 +1542,14 @@ static void CON_DrawConsole(void)
 	if (cons_backpic.value || con_forcepic)
 	{
 		patch_t *con_backpic = W_CachePatchName("CONSBACK", PU_PATCH);
+		int h;
+
+		h = con_curlines/vid.dupy;
 
 		// Jimita: CON_DrawBackpic just called V_DrawScaledPatch
-		V_DrawScaledPatch(0, 0, 0, con_backpic);
+		//V_DrawScaledPatch(0, 0, 0, con_backpic);
+		V_DrawCroppedPatch(0, 0, FRACUNIT, 0, con_backpic,
+				0, ( BASEVIDHEIGHT - h ), BASEVIDWIDTH, h);
 
 		W_UnlockCachedPatch(con_backpic);
 	}
diff --git a/src/d_main.c b/src/d_main.c
index 62ec9e4497b4ff3896f54017c01228daeea5b06d..f5390e2dffd94ade9f9bd181167328efdc72a6e9 100644
--- a/src/d_main.c
+++ b/src/d_main.c
@@ -502,13 +502,12 @@ static void D_Display(void)
 	// vid size change is now finished if it was on...
 	vid.recalc = 0;
 
-	// FIXME: draw either console or menu, not the two
-	if (gamestate != GS_TIMEATTACK)
-		CON_Drawer();
-
 	M_Drawer(); // menu is drawn even on top of everything
 	// focus lost moved to M_Drawer
 
+	if (gamestate != GS_TIMEATTACK)
+		CON_Drawer();
+
 	//
 	// wipe update
 	//