diff --git a/ChangeLog b/ChangeLog
index 178fe83..3029b53 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Wed Sep 24 23:42:08 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+	* win32/configure.js: patch from Stephane Bidoul for configuring
+	  the beta2 version #123104
+
 Wed Sep 24 23:17:59 CEST 2003 Daniel Veillard <daniel@veillard.com>
 
 	* Makefile.am: adding repeated parsing and validating tests
diff --git a/win32/configure.js b/win32/configure.js
index 2078724..c0cb84b 100644
--- a/win32/configure.js
+++ b/win32/configure.js
@@ -155,15 +155,18 @@
 	while (cf.AtEndOfStream != true) {
 		ln = cf.ReadLine();
 		s = new String(ln);
-		if (s.search(/^LIBXML_MAJOR_VERSION/) != -1) {
+		if (s.search(/^LIBXML_MAJOR_VERSION=/) != -1) {
 			vf.WriteLine(s);
 			verMajor = s.substring(s.indexOf("=") + 1, s.length)
-		} else if(s.search(/^LIBXML_MINOR_VERSION/) != -1) {
+		} else if(s.search(/^LIBXML_MINOR_VERSION=/) != -1) {
 			vf.WriteLine(s);
 			verMinor = s.substring(s.indexOf("=") + 1, s.length)
-		} else if(s.search(/^LIBXML_MICRO_VERSION/) != -1) {
+		} else if(s.search(/^LIBXML_MICRO_VERSION=/) != -1) {
 			vf.WriteLine(s);
 			verMicro = s.substring(s.indexOf("=") + 1, s.length)
+		} else if(s.search(/^LIBXML_MICRO_VERSION_SUFFIX=/) != -1) {
+			vf.WriteLine(s);
+			verMicroSuffix = s.substring(s.indexOf("=") + 1, s.length)
 		}
 	}
 	cf.Close();
@@ -222,7 +225,7 @@
 		s = new String(ln);
 		if (s.search(/\@VERSION\@/) != -1) {
 			of.WriteLine(s.replace(/\@VERSION\@/, 
-				verMajor + "." + verMinor + "." + verMicro));
+				verMajor + "." + verMinor + "." + verMicro + verMicroSuffix));
 		} else if (s.search(/\@LIBXML_VERSION_NUMBER\@/) != -1) {
 			of.WriteLine(s.replace(/\@LIBXML_VERSION_NUMBER\@/, 
 				verMajor*10000 + verMinor*100 + verMicro*1));
