diff -ru -X /home/jjm/cvs/no.freeciv FreecivCVS/client/gui-gtk/gui_main.c freeciv/client/gui-gtk/gui_main.c
--- FreecivCVS/client/gui-gtk/gui_main.c	Mon Jun 19 17:15:32 2000
+++ freeciv/client/gui-gtk/gui_main.c	Thu Jun 22 15:26:55 2000
@@ -767,6 +767,14 @@
 }
 
 
+/**************************************************************************
+...
+**************************************************************************/
+void sound_bell(void)
+{
+  gdk_beep();
+}
+
 
 /**************************************************************************
 ...
@@ -777,9 +785,6 @@
     user_ended_turn();
   gtk_widget_set_sensitive(turn_done_button,
 		!game.player_ptr->ai.control||ai_manual_turn_done);
-
-  if(sound_bell_at_new_turn)
-    gdk_beep();
 }
 
 
diff -ru -X /home/jjm/cvs/no.freeciv FreecivCVS/client/gui-mui/gui_main.c freeciv/client/gui-mui/gui_main.c
--- FreecivCVS/client/gui-mui/gui_main.c	Tue May  2 07:52:53 2000
+++ freeciv/client/gui-mui/gui_main.c	Thu Jun 22 15:27:28 2000
@@ -315,6 +315,14 @@
   MAKE_END
 };
 
+/**************************************************************************
+...
+**************************************************************************/
+void sound_bell(void)
+{
+  DisplayBeep(NULL);
+}
+
 /****************************************************************
  Enables the Turn Done button
 *****************************************************************/
@@ -323,11 +331,7 @@
   if (game.player_ptr->ai.control && !ai_manual_turn_done)
     user_ended_turn();
   set(main_turndone_button, MUIA_Disabled, !(!game.player_ptr->ai.control || ai_manual_turn_done));
-
-  if(sound_bell_at_new_turn)
-    DisplayBeep(NULL);
 }
-
 
 /****************************************************************
  Callback for the chatline
diff -ru -X /home/jjm/cvs/no.freeciv FreecivCVS/client/gui-stub/gui_main.c freeciv/client/gui-stub/gui_main.c
--- FreecivCVS/client/gui-stub/gui_main.c	Mon Dec 27 12:25:09 1999
+++ freeciv/client/gui-stub/gui_main.c	Thu Jun 22 15:28:12 2000
@@ -13,6 +13,12 @@
 }
 
 void
+sound_bell(void)
+{
+	/* PORTME */
+}
+
+void
 enable_turn_done_button(void)
 {
 	/* PORTME */
diff -ru -X /home/jjm/cvs/no.freeciv FreecivCVS/client/gui-xaw/gui_main.c freeciv/client/gui-xaw/gui_main.c
--- FreecivCVS/client/gui-xaw/gui_main.c	Wed Jun 21 10:27:40 2000
+++ freeciv/client/gui-xaw/gui_main.c	Thu Jun 22 16:11:15 2000
@@ -720,6 +720,14 @@
 /**************************************************************************
 ...
 **************************************************************************/
+void sound_bell(void)
+{
+  XBell(display, 100);
+}
+
+/**************************************************************************
+...
+**************************************************************************/
 void enable_turn_done_button(void)
 {
   if(game.player_ptr->ai.control && !ai_manual_turn_done)
@@ -728,9 +736,6 @@
   update_turn_done_button(1);
   XtSetSensitive(turn_done_button, 
                  !game.player_ptr->ai.control||ai_manual_turn_done);
-
-  if(sound_bell_at_new_turn)
-    XBell(display, 100);
 }
 
 /**************************************************************************
diff -ru -X /home/jjm/cvs/no.freeciv FreecivCVS/client/include/gui_main_g.h freeciv/client/include/gui_main_g.h
--- FreecivCVS/client/include/gui_main_g.h	Fri Aug 13 22:57:22 1999
+++ freeciv/client/include/gui_main_g.h	Thu Jun 22 15:31:22 2000
@@ -14,6 +14,7 @@
 #define FC__GUI_MAIN_G_H
 
 void ui_main(int argc, char *argv[]);
+void sound_bell(void);
 void enable_turn_done_button(void);
 void add_net_input(int);
 void remove_net_input(void);
diff -ru -X /home/jjm/cvs/no.freeciv FreecivCVS/client/packhand.c freeciv/client/packhand.c
--- FreecivCVS/client/packhand.c	Wed Jun 21 12:33:11 2000
+++ freeciv/client/packhand.c	Thu Jun 22 16:16:25 2000
@@ -347,7 +347,12 @@
 
   update_city_descriptions();
 
-  if(game.player_ptr->ai.control && !ai_manual_turn_done) user_ended_turn();
+  if(game.player_ptr->ai.control && !ai_manual_turn_done)
+    user_ended_turn();
+
+  if(sound_bell_at_new_turn &&
+     (!game.player_ptr->ai.control || ai_manual_turn_done))
+    sound_bell();
 }
 
 /**************************************************************************