Index: gnopernicus/speech/libsrs/srspeech.c
===================================================================
RCS file: /cvs/gnome/gnopernicus/speech/libsrs/srspeech.c,v
retrieving revision 1.33
diff -u -r1.33 srspeech.c
--- gnopernicus/speech/libsrs/srspeech.c	19 Dec 2003 11:52:47 -0000	1.33
+++ gnopernicus/speech/libsrs/srspeech.c	14 Feb 2004 10:35:18 -0000
@@ -733,10 +733,12 @@
 }
 
 void
-srs_call_shut_up ()
+srs_call_shut_up (gboolean same)
 {
     if (!cb_support_tranzition)
 	srs_shut_up ();
+    else if (same)
+	srs_shut_up ();
 }
 
 
Index: gnopernicus/speech/libsrs/srspeech.h
===================================================================
RCS file: /cvs/gnome/gnopernicus/speech/libsrs/srspeech.h,v
retrieving revision 1.15
diff -u -r1.15 srspeech.h
--- gnopernicus/speech/libsrs/srspeech.h	19 Dec 2003 11:52:47 -0000	1.15
+++ gnopernicus/speech/libsrs/srspeech.h	14 Feb 2004 10:35:19 -0000
@@ -148,7 +148,7 @@
 int        	srs_pause      		(void);
 int        	srs_resume     		(void);
 gboolean	srs_remove		(gint priority);
-void		srs_call_shut_up 	();
+void		srs_call_shut_up 	(gboolean same);
 /*____________________________< engine METHODS >______________________________*/
 
 #endif
Index: gnopernicus/speech/libsrs/srsxml.c
===================================================================
RCS file: /cvs/gnome/gnopernicus/speech/libsrs/srsxml.c,v
retrieving revision 1.23
diff -u -r1.23 srsxml.c
--- gnopernicus/speech/libsrs/srsxml.c	19 Dec 2003 11:52:47 -0000	1.23
+++ gnopernicus/speech/libsrs/srsxml.c	14 Feb 2004 10:35:20 -0000
@@ -85,6 +85,7 @@
 			{
 				static gboolean last_preempt = TRUE;
 				static gint last_priority = -1;
+				gboolean same;
 				/* srs_shut_up (); */
 				curr_state = SPS_OUT;
 				srs_priority = 0;
@@ -106,9 +107,9 @@
 					++attrs;																
 				    }					
 				}
-				if ((last_priority < srs_priority) ||
-				    ((last_priority == srs_priority) && last_preempt))
-				    srs_call_shut_up ();
+				same = last_priority == srs_priority && last_preempt;
+				if ((last_priority < srs_priority) || same)
+				    srs_call_shut_up (same);
 				last_priority = srs_priority;
 				last_preempt = srs_preempt;
 				srs_remove (srs_priority);						
