	*** This file is obsolete. Changes are listed in the main
	*** ChangeLog now. Please do not edit.

Mon Jul 28 18:28:14 1997  Peter Schlaile <up9n@rz.uni-karlsruhe.de>

	* [grpfile.c]
	Added checksum calculation [UNTESTED!].

Fri Jul 4 12:00:00 1997  Henrik Olsen <henrik@iaeste.dk>

	* [Da.rc] (new)
	Added Danish language support.

Tue Jun  3 07:34:26 1997  Marcel Baur <mbaur@g26.ethz.ch>

	* [Va.rc] (new)
	Added Vallader (Rumantsch Ladin) language support.

Wed Feb 12 00:58:37 1997  Elker Cavina <elker@mail.asianet.it>

	* [It.rc] (new)
	Added Italian language support.

Fri Jan 24 11:21:30 1997  Bang Jun-Young  <bangjy@nownuri.nowcom.co.kr>

	* [Ko.rc] (new)
	Added Korean language support.

Mon Jul 22 20:30:11 1996  Jussi Tirkkonen <jt@modeemi.cs.tut.fi>

	* [Fi.rc] (new)
	Added Finnish language support.

Sun Jun  2 13:14:55 1996  Ulrich Schmid  <uschmid@mail.hh.provi.de>

	* Program icons: repaint on WM_NCPAINT or WM_PAINTICON

Sun Apr 14 20:09:19 1996  Pablo Saratxaga <srtxg@chanae.alphanet.ch>

	* [Fr.rc] (new)
	Added French language support.

Sun Mar 24 12:28:22 1996  Ulrich Schmid  <uschmid@mail.hh.provi.de>

	* [Strings_En.c] [Strings_De.c] (deleted)
	Use resources for stringtables.

	* [Xx.rc]
	Added `WS_TABSTOP'

Wed Mar 20 13:14:58 1996  Ulrich Schmid  <uschmid@mail.hh.provi.de>

	* [winexec.c] (deleted)
	Moved code to loader/modules.c

Fri Mar 15 20:56:31 1996  Ulrich Schmid  <uschmid@mail.hh.provi.de>

	* [main.c]
 	`Arrange icons' in group windows

	* [program.c]
	No sysmenu for program windows

	* [string.c]
	Update sysmenu after language change

Wed Feb 28 19:21:55 1996  Ulrich Schmid  <uschmid@mail.hh.provi.de>

	* [progman.h] [main.c] [group.c] [program.c] [dialog.c]
	[grpfile.c] [string.c] [winexec.c] [license.h] [license.c] [Xx.rc]
	[accel.rc] [En.rc] [Strings_En.c] [License_En.c] [De.rc]
	[Strings_De.c] Original by Ulrich Schmid
