diff --git a/ChangeLog b/ChangeLog
index 93541b44a1601fcdcddade190e5480df7ec9a287_Q2hhbmdlTG9n..86bf17ead332ed5681f7538d7eb1cca444d4ed6c_Q2hhbmdlTG9n 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Sat Nov 25 11:48:28 HKT 2006 William Brack <wbrack@mmm.com.hk>
+
+	* libxslt/variables.c: fixed problem with cached RVT's,
+	  bug #378766
+
 Thu Nov 23 17:49:31 CET 2006 Daniel Veillard <daniel@veillard.com>
 
 	* libxslt/transform.c: applied patch from Mike Hommey about saving
diff --git a/libxslt/variables.c b/libxslt/variables.c
index 93541b44a1601fcdcddade190e5480df7ec9a287_bGlieHNsdC92YXJpYWJsZXMuYw==..86bf17ead332ed5681f7538d7eb1cca444d4ed6c_bGlieHNsdC92YXJpYWJsZXMuYw== 100644
--- a/libxslt/variables.c
+++ b/libxslt/variables.c
@@ -75,4 +75,5 @@
     if (ctxt->cache->RVT) {
 	container = ctxt->cache->RVT;
 	ctxt->cache->RVT = (xmlDocPtr) container->next;
+	/* clear the internal pointers */
 	container->next = NULL;
@@ -78,4 +79,5 @@
 	container->next = NULL;
+	container->prev = NULL;
 	if (ctxt->cache->nbRVT > 0)
 	    ctxt->cache->nbRVT--;
 #ifdef XSLT_DEBUG_PROFILE_CACHE