diff --git macosx/tkMacOSXPrivate.h macosx/tkMacOSXPrivate.h
index 3b031392d..8d1b0f3b0 100644
--- macosx/tkMacOSXPrivate.h
+++ macosx/tkMacOSXPrivate.h
@@ -498,6 +498,14 @@ VISIBILITY_HIDDEN
 - (NSMenuItem *)itemInSupermenu;
 @end
 
+// Need undocumented appearance: argument
+@interface NSMenu(TKMenu)
+- (BOOL)popUpMenuPositioningItem:(NSMenuItem *)item
+		      atLocation:(NSPoint)location
+			  inView:(NSView *)view
+		      appearance:(NSAppearance *)appearance;
+@end
+
 @interface NSMenuItem(TKUtils)
 + (id)itemWithSubmenu:(NSMenu *)submenu;
 + (id)itemWithTitle:(NSString *)title submenu:(NSMenu *)submenu;
diff --git macosx/tkMacOSXMenu.c macosx/tkMacOSXMenu.c
index cc3ab7f23..e00e488b3 100644
--- macosx/tkMacOSXMenu.c
+++ macosx/tkMacOSXMenu.c
@@ -935,8 +935,6 @@ TkpPostMenu(
 	}
 	realWin = Tk_Parent(realWin);
     }
-    NSWindow *win = [realWinView window];
-    NSView *view = [win contentView];
     NSMenu *menu = (NSMenu *) menuPtr->platformData;
     NSInteger itemIndex = index;
     NSInteger numItems = [menu numberOfItems];
@@ -966,8 +964,9 @@ TkpPostMenu(
     }
 
     [menu popUpMenuPositioningItem:item
-			atLocation:[win tkConvertPointFromScreen:location]
-			    inView:view];
+			atLocation:location
+			    inView:nil
+			appearance:realWinView.effectiveAppearance];
     inPostMenu = 0;
     return TCL_OK;
 }
