diff -c -r pgodbc_vendor/bind.c pgodbc/bind.c
*** pgodbc_vendor/bind.c	Fri Jan 08 10:32:46 1999
--- pgodbc/bind.c	Sat Oct 23 13:08:50 1999
***************
*** 123,131 ****
  		stmt->parameters[ipar].EXEC_used = NULL;
  	}
  
! 	if (stmt->parameters[ipar].EXEC_buffer) {
! 		free(stmt->parameters[ipar].EXEC_buffer);
  		stmt->parameters[ipar].EXEC_buffer = NULL;
  	}
  
  	/*	Data at exec macro only valid for C char/binary data */
--- 123,135 ----
  		stmt->parameters[ipar].EXEC_used = NULL;
  	}
  
! 	if ( stmt->parameters[ipar].SQLType == SQL_LONGVARBINARY) {
  		stmt->parameters[ipar].EXEC_buffer = NULL;
+ 	} else {
+ 		if (stmt->parameters[ipar].EXEC_buffer) {
+ 			free(stmt->parameters[ipar].EXEC_buffer);
+ 			stmt->parameters[ipar].EXEC_buffer = NULL;
+ 		}
  	}
  
  	/*	Data at exec macro only valid for C char/binary data */
diff -c -r pgodbc_vendor/statement.c pgodbc/statement.c
*** pgodbc_vendor/statement.c	Thu Sep 02 22:08:04 1999
--- pgodbc/statement.c	Sat Oct 23 13:07:24 1999
***************
*** 326,334 ****
  				self->parameters[i].EXEC_used = NULL;
  			}
  
! 			if (self->parameters[i].EXEC_buffer) {
! 				free(self->parameters[i].EXEC_buffer);
  				self->parameters[i].EXEC_buffer = NULL;
  			}
  		}
  	}
--- 326,338 ----
  				self->parameters[i].EXEC_used = NULL;
  			}
  
! 			if ( self->parameters[i].SQLType == SQL_LONGVARBINARY) {
  				self->parameters[i].EXEC_buffer = NULL;
+ 			} else {
+ 				if (self->parameters[i].EXEC_buffer) {
+ 					free(self->parameters[i].EXEC_buffer);
+ 					self->parameters[i].EXEC_buffer = NULL;
+ 				}
  			}
  		}
  	}
