}
 
 int
-lo_write(int fd, char *buf, int len)
+lo_write(int fd, const char *buf, int len)
 {
        int                     status;
 
 
 }
 
 int
-inv_write(LargeObjectDesc *obj_desc, char *buf, int nbytes)
+inv_write(LargeObjectDesc *obj_desc, const char *buf, int nbytes)
 {
        int                     nwritten = 0;
        int                     n;
 
  * but too late now...
  */
 extern int     lo_read(int fd, char *buf, int len);
-extern int     lo_write(int fd, char *buf, int len);
+extern int     lo_write(int fd, const char *buf, int len);
 
 /*
  * Cleanup LOs at xact commit/abort
 
 extern int     inv_seek(LargeObjectDesc *obj_desc, int offset, int whence);
 extern int     inv_tell(LargeObjectDesc *obj_desc);
 extern int     inv_read(LargeObjectDesc *obj_desc, char *buf, int nbytes);
-extern int     inv_write(LargeObjectDesc *obj_desc, char *buf, int nbytes);
+extern int     inv_write(LargeObjectDesc *obj_desc, const char *buf, int nbytes);
 
 #endif   /* LARGE_OBJECT_H */
 
  * returns the number of bytes written, or -1 on failure.
  */
 int
-lo_write(PGconn *conn, int fd, char *buf, size_t len)
+lo_write(PGconn *conn, int fd, const char *buf, size_t len)
 {
        PQArgBlock      argv[2];
        PGresult   *res;
 
 extern int     lo_open(PGconn *conn, Oid lobjId, int mode);
 extern int     lo_close(PGconn *conn, int fd);
 extern int     lo_read(PGconn *conn, int fd, char *buf, size_t len);
-extern int     lo_write(PGconn *conn, int fd, char *buf, size_t len);
+extern int     lo_write(PGconn *conn, int fd, const char *buf, size_t len);
 extern int     lo_lseek(PGconn *conn, int fd, int offset, int whence);
 extern Oid     lo_creat(PGconn *conn, int mode);
 extern Oid     lo_create(PGconn *conn, Oid lobjId);