Index: openacs-4/packages/learning-content/tcl/learning-content-xowiki-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/learning-content/tcl/learning-content-xowiki-procs.tcl,v
diff -u -r1.3 -r1.4
--- openacs-4/packages/learning-content/tcl/learning-content-xowiki-procs.tcl	25 Aug 2009 17:28:16 -0000	1.3
+++ openacs-4/packages/learning-content/tcl/learning-content-xowiki-procs.tcl	9 Nov 2009 18:28:40 -0000	1.4
@@ -21,14 +21,21 @@
     }
 
     Package instproc destroy {} {
-        ::xowiki::WikiForm instmixin delete ::learning_content::ContentForm
-        ::xowiki::PageInstanceEditForm instmixin delete \
-            ::learning_content::ContentWikiForm
-        ::xowiki::PageTemplateForm instmixin delete \
+	#
+	# In general, it is possible, that multiple learning_content packages are
+	# concurrently active in one thread.  We want to remove the mixin only,
+	# when the last instance is deleted.
+	#
+	if {[llength [[self class] allinstances]] == 1} {
+	    ::xowiki::WikiForm instmixin delete ::learning_content::ContentForm
+	    ::xowiki::PageInstanceEditForm instmixin delete \
+		::learning_content::ContentWikiForm
+	    ::xowiki::PageTemplateForm instmixin delete \
 	    ::learning_content::ContentTemplateForm
-        ::xowiki::FormPage instmixin delete ::learning_content::ContentFormPage
-        ::xowiki::Page instmixin delete ::learning_content::ContentPage
-        next
+	    ::xowiki::FormPage instmixin delete ::learning_content::ContentFormPage
+	    ::xowiki::Page instmixin delete ::learning_content::ContentPage
+	}
+	next
     }
 
     Package instproc return_page {