diff --git a/src/interfaces/odbc/bind.c b/src/interfaces/odbc/bind.c
index 285fabd75abeeb11109487374acd7c0456f9b005..67811f3926546fbed6728a4ee2732faf2cd3ad14 100644
--- a/src/interfaces/odbc/bind.c
+++ b/src/interfaces/odbc/bind.c
@@ -124,7 +124,8 @@ static char *func="SQLBindParameter";
 	}
 
 	if (stmt->parameters[ipar].EXEC_buffer) {
-		free(stmt->parameters[ipar].EXEC_buffer);
+		if (stmt->parameters[ipar].SQLType != SQL_LONGVARBINARY)
+			free(stmt->parameters[ipar].EXEC_buffer);
 		stmt->parameters[ipar].EXEC_buffer = NULL;
 	}
 
diff --git a/src/interfaces/odbc/statement.c b/src/interfaces/odbc/statement.c
index c11a0ab21691865f004de0328fe178e0c1174c40..5aa540ec27719c718592da83f35893e31800a9a5 100644
--- a/src/interfaces/odbc/statement.c
+++ b/src/interfaces/odbc/statement.c
@@ -327,7 +327,8 @@ int i;
 			}
 
 			if (self->parameters[i].EXEC_buffer) {
-				free(self->parameters[i].EXEC_buffer);
+				if (self->parameters[i].SQLType != SQL_LONGVARBINARY)
+					free(self->parameters[i].EXEC_buffer);
 				self->parameters[i].EXEC_buffer = NULL;
 			}
 		}
@@ -875,7 +876,7 @@ QueryInfo qi;
 			*/
 		}
 		else {
-			self->errornumber = STMT_BAD_ERROR;
+			self->errornumber = STMT_EXEC_ERROR;
 			self->errormsg = "Error while executing the query";
 		}