    RELEASE(delegate);
  
    [super dealloc];
+Index: sope-gdl1/Oracle8/OracleAdaptorChannelController.m
+===================================================================
+--- sope-gdl1/Oracle8/OracleAdaptorChannelController.m	(rvision 1546)
++++ sope-gdl1/Oracle8/OracleAdaptorChannelController.m	(copie de travail)
+@@ -155,7 +155,9 @@
+ 	  OCILobFreeTemporary([theChannel serviceContext], [theChannel errorHandle], info->value);
+ 	  OCIDescriptorFree((dvoid *)info->value, (ub4)OCI_DTYPE_LOB);
+ 	}
++      free(info);
+     }
++  [theColumns release];
+ 
+   OCIHandleFree(theStatement, OCI_HTYPE_STMT);
+ }
 Index: sope-appserver/NGObjWeb/GNUmakefile.postamble
 ===================================================================
 --- sope-appserver/NGObjWeb/GNUmakefile.postamble	(rvision 1546)

     }
 }
 
@@ -151,11 +164,6 @@
   [self _cleanup];
 
   RELEASE(_resultSetProperties);

===================================================================
--- sope-gdl1/Oracle8/OracleAdaptorChannel.m	(rvision 1546)
+++ sope-gdl1/Oracle8/OracleAdaptorChannel.m	(copie de travail)
@@ -53,14 +53,17 @@
   while (c--)
     {
       info = [[_row_buffer objectAtIndex: c] pointerValue];
-      [_row_buffer removeObjectAtIndex: c];
 
       // We free our LOB object. If it fails, it likely mean it isn't a LOB
       // so we just free the value instead.
