diff --git a/src/bin/psql/input.c b/src/bin/psql/input.c
index 2e01eb1..f3193a2 100644
*** a/src/bin/psql/input.c
--- b/src/bin/psql/input.c
*************** gets_fromFile(FILE *source)
*** 229,244 ****
  static void
  encode_history(void)
  {
  	HIST_ENTRY *cur_hist;
  	char	   *cur_ptr;
  
! 	history_set_pos(0);
! 	for (cur_hist = current_history(); cur_hist; cur_hist = next_history())
  	{
  		/* some platforms declare HIST_ENTRY.line as const char * */
  		for (cur_ptr = (char *) cur_hist->line; *cur_ptr; cur_ptr++)
  			if (*cur_ptr == '\n')
  				*cur_ptr = NL_IN_HISTORY;
  	}
  }
  
--- 229,246 ----
  static void
  encode_history(void)
  {
+ 	int			i;
  	HIST_ENTRY *cur_hist;
  	char	   *cur_ptr;
  
! 	for (i = history_base; (cur_hist = history_get(i)) != NULL; i++)
  	{
  		/* some platforms declare HIST_ENTRY.line as const char * */
  		for (cur_ptr = (char *) cur_hist->line; *cur_ptr; cur_ptr++)
+ 		{
  			if (*cur_ptr == '\n')
  				*cur_ptr = NL_IN_HISTORY;
+ 		}
  	}
  }
  
*************** encode_history(void)
*** 248,263 ****
  static void
  decode_history(void)
  {
  	HIST_ENTRY *cur_hist;
  	char	   *cur_ptr;
  
! 	history_set_pos(0);
! 	for (cur_hist = current_history(); cur_hist; cur_hist = next_history())
  	{
  		/* some platforms declare HIST_ENTRY.line as const char * */
  		for (cur_ptr = (char *) cur_hist->line; *cur_ptr; cur_ptr++)
  			if (*cur_ptr == NL_IN_HISTORY)
  				*cur_ptr = '\n';
  	}
  }
  #endif   /* USE_READLINE */
--- 250,267 ----
  static void
  decode_history(void)
  {
+ 	int			i;
  	HIST_ENTRY *cur_hist;
  	char	   *cur_ptr;
  
! 	for (i = history_base; (cur_hist = history_get(i)) != NULL; i++)
  	{
  		/* some platforms declare HIST_ENTRY.line as const char * */
  		for (cur_ptr = (char *) cur_hist->line; *cur_ptr; cur_ptr++)
+ 		{
  			if (*cur_ptr == NL_IN_HISTORY)
  				*cur_ptr = '\n';
+ 		}
  	}
  }
  #endif   /* USE_READLINE */
