diff --git a/controls/menu.c b/controls/menu.c
index ee407e2..6e60858 100644
--- a/controls/menu.c
+++ b/controls/menu.c
@@ -653,7 +653,10 @@
     {
         dwSize = GetTextExtent( hdc, lpitem->text, strlen(lpitem->text) );
         lpitem->rect.right  += LOWORD(dwSize);
-        lpitem->rect.bottom += MAX( HIWORD(dwSize), SYSMETRICS_CYMENU );
+	if (TWEAK_Win95Look)
+            lpitem->rect.bottom += MAX (HIWORD(dwSize), sysMetrics[SM_CYMENU]- 1);
+        else
+            lpitem->rect.bottom += MAX( HIWORD(dwSize), SYSMETRICS_CYMENU );
         lpitem->xTab = 0;
 
         if (menuBar) lpitem->rect.right += MENU_BAR_ITEMS_SPACE;
@@ -698,6 +701,7 @@
 	lpitem = &lppop->items[start];
 	orgX = maxX;
 	orgY = SYSMETRICS_CYBORDER;
+
 	maxTab = maxTabWidth = 0;
 
 	  /* Parse items until column break or end of menu */
@@ -731,6 +735,9 @@
 	lppop->Height = MAX( lppop->Height, orgY );
     }
 
+    if(TWEAK_Win95Look)
+	lppop->Height++;
+
     lppop->Width  = maxX;
     ReleaseDC32( 0, hdc );
 }
@@ -881,22 +888,10 @@
 	*/
     }
 
-    if (lpitem->fState & MF_HILITE) {
-	RECT32  r = rect;
-	r.top += MENU_HighlightTopNudge;
-	r.bottom += MENU_HighlightBottomNudge;
-	r.left += MENU_HighlightLeftNudge;
-	r.right += MENU_HighlightRightNudge;
-	FillRect32( hdc, &r, GetSysColorBrush32(COLOR_HIGHLIGHT) );
-    }
-    else {
-	RECT32  r = rect;
-	r.top += MENU_HighlightTopNudge;
-	r.bottom += MENU_HighlightBottomNudge;
-	r.left += MENU_HighlightLeftNudge;
-	r.right += MENU_HighlightRightNudge;
-	FillRect32( hdc, &r, GetSysColorBrush32(COLOR_MENU) );
-    }
+    if (lpitem->fState & MF_HILITE)
+	FillRect32( hdc, &rect, GetSysColorBrush32(COLOR_HIGHLIGHT) );
+    else
+	FillRect32( hdc, &rect, GetSysColorBrush32(COLOR_MENU) );
 
     SetBkMode32( hdc, TRANSPARENT );
 
@@ -1147,9 +1142,6 @@
     lprect->bottom = lprect->top + lppop->Height;
     if (suppress_draw) return lppop->Height;
     
-    if(TWEAK_Win95Look)
-	++lprect->bottom;
-
     FillRect32(hDC, lprect, GetSysColorBrush32(COLOR_MENU) );
 
     if(!TWEAK_Win95Look) {
@@ -1157,6 +1149,11 @@
 	MoveTo( hDC, lprect->left, lprect->bottom );
 	LineTo32( hDC, lprect->right, lprect->bottom );
     }
+    else {
+	SelectObject32( hDC, GetSysColorPen32(COLOR_3DFACE));
+	MoveTo( hDC, lprect->left, lprect->bottom );
+	LineTo32( hDC, lprect->right, lprect->bottom );
+    }
 
     if (lppop->nItems == 0) return SYSMETRICS_CYMENU;
     for (i = 0; i < lppop->nItems; i++)
