Index: openacs-4/packages/acs-tcl/tcl/security-procs-oracle.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-tcl/tcl/security-procs-oracle.xql,v
diff -u -r1.3 -r1.4
--- openacs-4/packages/acs-tcl/tcl/security-procs-oracle.xql	29 Dec 2001 01:48:32 -0000	1.3
+++ openacs-4/packages/acs-tcl/tcl/security-procs-oracle.xql	1 Mar 2002 15:01:02 -0000	1.4
@@ -63,4 +63,20 @@
       </querytext>
 </fullquery>
  
+
+<fullquery name="ad_set_client_property.prop_update_dml_clob">      
+      <querytext>
+                update sec_session_properties
+                set property_value = null,
+                  property_clob = empty_clob(),
+                  secure_p = :secure,
+                  last_hit = :last_hit 
+                where session_id = :session_id and
+                  module = :module and
+                  property_name = :name
+                returning property_clob into :1
+
+      </querytext>
+</fullquery>
+ 
 </queryset>
Index: openacs-4/packages/acs-tcl/tcl/security-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-tcl/tcl/security-procs.tcl,v
diff -u -r1.6 -r1.7
--- openacs-4/packages/acs-tcl/tcl/security-procs.tcl	28 Feb 2002 01:10:08 -0000	1.6
+++ openacs-4/packages/acs-tcl/tcl/security-procs.tcl	1 Mar 2002 15:01:02 -0000	1.7
@@ -388,7 +388,7 @@
 	db_transaction {
 
             # DRB: Older versions of this code did a delete/insert pair in an attempt
-            # to guard against duplicate insertions.  This didn't work if there were
+            # to guard against duplicate insertions.  This didn't work if there was
             # no value for this property in the table and two transactions ran in
             # parallel.  The problem is that without an existing row the delete had
             # nothing to lock on, thus allowing the two inserts to conflict.  This
@@ -400,8 +400,8 @@
 
             set clob_insert_dml [db_map prop_insert_dml_clob]
 
-            if { $clob == "t" && ![empty_string_p $clob_dml] } {
-                if { [catch {db_dml dummy $clob_dml -clobs [list $value]} errmsg] } {
+            if { $clob == "t" && ![empty_string_p $clob_insert_dml] } {
+                if { [catch {db_dml dummy $clob_insert_dml -clobs [list $value]} errmsg] } {
                     db_dml prop_update_dml_clob "" -clobs [list $value]
                 }
             } else {
Index: openacs-4/packages/acs-tcl/tcl/security-procs.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-tcl/tcl/security-procs.xql,v
diff -u -r1.3 -r1.4
--- openacs-4/packages/acs-tcl/tcl/security-procs.xql	29 Dec 2001 01:48:32 -0000	1.3
+++ openacs-4/packages/acs-tcl/tcl/security-procs.xql	1 Mar 2002 15:01:02 -0000	1.4
@@ -36,30 +36,32 @@
 	
       </querytext>
 </fullquery>
-
  
-<fullquery name="ad_set_client_property.prop_delete_dml">      
+<fullquery name="ad_set_client_property.prop_insert_dml">      
       <querytext>
       
-		delete from sec_session_properties
-		where  session_id = :session_id
-		and    module = :module
-		and    property_name = :name
+		insert into sec_session_properties
+		(session_id, module, property_name, property_value, secure_p, last_hit)
+		values ( :session_id, :module, :name, :value, :secure, :last_hit )
 	    
       </querytext>
 </fullquery>
 
  
-<fullquery name="ad_set_client_property.prop_insert_dml">      
+<fullquery name="ad_set_client_property.prop_update_dml">      
       <querytext>
       
-		insert into sec_session_properties
-		(session_id, module, property_name, property_value, secure_p, last_hit)
-		values ( :session_id, :module, :name, :value, :secure, :last_hit )
+                update sec_session_properties
+                set property_value = :value,
+                  property_clob = null,
+                  secure_p = :secure,
+                  last_hit = :last_hit 
+                where session_id = :session_id and
+                  module = :module and
+                  property_name = :name
 	    
       </querytext>
 </fullquery>
-
  
 <fullquery name="sec_get_token.get_token">      
       <querytext>