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

-      	{
-      	  free(info->value);
-      	}
+      if (info)
+	{
+	  if (info->value && OCIDescriptorFree((dvoid *)info->value, (ub4)OCI_DTYPE_LOB) != OCI_SUCCESS)
+	    {
+      	      free(info->value);
+	      info->value = NULL;
+      	    }
+	  free(info);
+	}
     }
 
   OCIHandleFree(_current_stm, OCI_HTYPE_STMT);
@@ -138,6 +143,14 @@
 	{
 	  NSLog(@"FAILED: OCITerminate()");
 	}

===================================================================
--- 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.
