diff -pru dillo/src/bookmark.c dillo.new/src/bookmark.c
--- dillo/src/bookmark.c	Sat Nov 11 01:54:36 2000
+++ dillo.new/src/bookmark.c	Fri Dec  1 01:44:35 2000
@@ -147,8 +147,8 @@ void a_Bookmarks_add(GtkWidget *widget, 
    char *title, *url;
    GtkWidget *menuitem;
 
-   title = menu_popup.info.title;
-   url = menu_popup.info.url;
+   title = bw->menu_popup.info.title;
+   url = bw->menu_popup.info.url;
 
    if (!title && !url) {
       /* find title and url */
diff -pru dillo/src/browser.h dillo.new/src/browser.h
--- dillo/src/browser.h	Mon Nov 27 22:42:53 2000
+++ dillo.new/src/browser.h	Fri Dec  1 01:53:08 2000
@@ -22,6 +22,14 @@ typedef struct {
     gint Flags;  /* {WEB_RootUrl, WEB_Image, WEB_Download} */
 } BwUrls;
 
+/* The popup menus so that we can call them. */
+struct _DilloMenuPopup
+{
+   GtkWidget *menu;
+   GtkWidget *menu_over_link;
+   DilloNav info;
+};
+
 /* browser_window contains all widgets to create a single window */
 struct _BrowserWindow
 {
@@ -38,6 +46,9 @@ struct _BrowserWindow
      
    /* the keyboard accelerator table */
    GtkAccelGroup *accel_group;
+
+   /* Menu pop up for this window */
+   DilloMenuPopup menu_popup;
  
    /* individual menuitems so their sensitivity can be set. */
    GtkWidget *back_menuitem;
@@ -111,17 +122,8 @@ struct _DilloBookmark {
 };
 
     
-/* The popup menus so that we can call them. */
-struct _DilloMenuPopup
-{
-   GtkWidget *menu;
-   GtkWidget *menu_over_link;
-   DilloNav info;
-};
-
 extern BrowserWindow **browser_window;
 extern gint num_bw;
-extern DilloMenuPopup menu_popup;
 
 #endif /* __DILLO_BROWSER_H__ */
 
diff -pru dillo/src/commands.c dillo.new/src/commands.c
--- dillo/src/commands.c	Mon Nov 27 22:42:53 2000
+++ dillo.new/src/commands.c	Fri Dec  1 01:46:41 2000
@@ -310,9 +310,10 @@ void a_Commands_manual_callback(GtkWidge
  */
 void a_Commands_open_link_nw_callback(GtkWidget *widget, gpointer client_data)
 {
+   BrowserWindow *bw = (BrowserWindow *)client_data;
    BrowserWindow *newbw;
 
    newbw = a_Interface_new_browser_window();
-   a_Nav_push(newbw, menu_popup.info.url);
+   a_Nav_push(newbw, bw->menu_popup.info.url);
 }
  
diff -pru dillo/src/dw_page.c dillo.new/src/dw_page.c
--- dillo/src/dw_page.c	Mon Nov 27 22:42:53 2000
+++ dillo.new/src/dw_page.c	Fri Dec  1 01:45:49 2000
@@ -687,9 +687,9 @@ static void Dw_page_handle_event(Dw *dw,
          /* Button 2: open link in a new window */
          gint link_pressed = Dw_page_find_link(page, button->x, button->y);
          if (link_pressed >= 0) {
-            menu_popup.info.title = "";
-            menu_popup.info.url = page->links[link_pressed].url;
-            a_Commands_open_link_nw_callback(NULL, NULL);
+            bw->menu_popup.info.title = "";
+            bw->menu_popup.info.url = page->links[link_pressed].url;
+            a_Commands_open_link_nw_callback(NULL, bw);
          }
          return;
       }
@@ -698,17 +698,17 @@ static void Dw_page_handle_event(Dw *dw,
          gint link_pressed = Dw_page_find_link(page, button->x, button->y);
 
          if (link_pressed >= 0) {
-            menu_popup.info.title = "";
-            menu_popup.info.url = page->links[link_pressed].url;
-            gtk_menu_popup(GTK_MENU(menu_popup.menu_over_link), NULL, NULL,
+            bw->menu_popup.info.title = "";
+            bw->menu_popup.info.url = page->links[link_pressed].url;
+            gtk_menu_popup(GTK_MENU(bw->menu_popup.menu_over_link), NULL, NULL,
                            NULL, NULL, button->button, button->time);
          } else {
             if (bw->nav_stack_size == 0)
                return;
 
-            menu_popup.info.title = bw->nav_stack[bw->nav_stack_ptr].title;
-            menu_popup.info.url = bw->nav_stack[bw->nav_stack_ptr].url;
-            gtk_menu_popup(GTK_MENU(menu_popup.menu), NULL, NULL,
+            bw->menu_popup.info.title = bw->nav_stack[bw->nav_stack_ptr].title;
+            bw->menu_popup.info.url = bw->nav_stack[bw->nav_stack_ptr].url;
+            gtk_menu_popup(GTK_MENU(bw->menu_popup.menu), NULL, NULL,
                            NULL, NULL, button->button, button->time);
          }
          return;
diff -pru dillo/src/interface.c dillo.new/src/interface.c
--- dillo/src/interface.c	Mon Nov 27 22:42:54 2000
+++ dillo.new/src/interface.c	Fri Dec  1 01:36:18 2000
@@ -388,8 +388,8 @@ BrowserWindow *a_Interface_new_browser_w
    menubar = a_Menu_mainbar_new(bw);
    gtk_container_add(GTK_CONTAINER(handlebox), menubar);
   
-   menu_popup.menu = a_Menu_popup_new(bw);
-   menu_popup.menu_over_link = a_Menu_popup_ol_new(bw);
+   bw->menu_popup.menu = a_Menu_popup_new(bw);
+   bw->menu_popup.menu_over_link = a_Menu_popup_ol_new(bw);
 
    gtk_widget_show(menubar);
    gtk_widget_show(handlebox);
diff -pru dillo/src/menu.c dillo.new/src/menu.c
--- dillo/src/menu.c	Mon Nov 27 22:42:54 2000
+++ dillo.new/src/menu.c	Fri Dec  1 01:53:33 2000
@@ -33,8 +33,6 @@
  */
 void Menu_pagemarks_goto_pagemark(GtkWidget *widget, gpointer client_data);
 
-DilloMenuPopup menu_popup;
-
 /*
  * Make a new menu, insert it into the menu bar, and return it.
  */
