diff --git a/bse/ChangeLog b/bse/ChangeLog
index 4dc2dc1..69c550a 100644
--- a/bse/ChangeLog
+++ b/bse/ChangeLog
@@ -1,3 +1,11 @@
+Mon Nov 12 21:00:10 2007  Stefan Westerfeld  <stefan@space.twc.de>
+
+	Fix module reset when user presses play again, bug #336766.
+
+	* bseproject.c (bse_project_stop_playback): When this method is
+	called, we need to dismiss the contexts of the BseSuper classes
+	we previously created in bse_project_start_playback.
+
 Mon Nov  5 17:28:04 2007  Stefan Westerfeld  <stefan@space.twc.de>
 
 	Merge BSE_FINE_TUNE_FACTOR() and bse_cent_factor(), bug #450490.
diff --git a/bse/bseproject.c b/bse/bseproject.c
index d008d4a..1dc8629 100644
--- a/bse/bseproject.c
+++ b/bse/bseproject.c
@@ -919,7 +919,7 @@ bse_project_stop_playback (BseProject *self)
       BseSuper *super = BSE_SUPER (slist->data);
       if (BSE_IS_SONG (super))
         bse_sequencer_remove_song (BSE_SONG (super));
-      if (super->context_handle != ~0 && !BSE_SUPER_NEEDS_CONTEXT (super))
+      if (super->context_handle != ~0 && BSE_SUPER_NEEDS_CONTEXT (super))
 	{
 	  BseSource *source = BSE_SOURCE (super);
 	  bse_source_dismiss_context (source, super->context_handle, trans);
