Index: WEB-INF/lps/lfc/services/LzBrowser.js
===================================================================
--- WEB-INF/lps/lfc/services/LzBrowser.js	(revision 1151)
+++ WEB-INF/lps/lfc/services/LzBrowser.js	(working copy)
@@ -49,14 +49,10 @@
 }
 
 //==============================================================================
-// Returns the current version of the Flash player.
-//
-// @keywords flashspecific
-//
+// Returns version information about the browser
 //==============================================================================
-// TODO: [2006-04-22 ptw] Rename to getFlashVersion?
 LzBrowser.getVersion = function() {
-  return void 0;
+  return navigator.userAgent;
 }
 
 //==============================================================================
Index: WEB-INF/lps/lfc/debugger/LzFlashRemote.as
===================================================================
--- WEB-INF/lps/lfc/debugger/LzFlashRemote.as	(revision 1151)
+++ WEB-INF/lps/lfc/debugger/LzFlashRemote.as	(working copy)
@@ -192,7 +192,7 @@
     if (typeof(canvas) != 'undefined') {
         this.cdSendMsg("connection from app: " +
                        LzBrowser.getLoadURLAsLzURL() + 
-                       ", build:  "+ canvas.build + 
+                       ", build:  "+ canvas.lpsbuild + 
                        ", lpsversion: "+ canvas.lpsversion + 
                        ", lpsrelease: "+ canvas.lpsrelease +
                        ", runtime: " + canvas.runtime);
Index: WEB-INF/lps/lfc/debugger/LzDebug.lzs
===================================================================
--- WEB-INF/lps/lfc/debugger/LzDebug.lzs	(revision 1151)
+++ WEB-INF/lps/lfc/debugger/LzDebug.lzs	(working copy)
@@ -52,6 +52,29 @@
 Debug.showInternalProperties = false;
 
 //---
+// Compute version info
+//---
+Debug.versionInfoString = function () {
+  return Debug.formatToString(
+    'URL: %s\nVersion: %s\nRelease: %s\nBuild: %s\nDate: %s\nTarget: %s\nRuntime: %s\n',
+    LzBrowser.getLoadURL(),
+    canvas.lpsversion,
+    canvas.lpsrelease,
+    canvas.lpsbuild,
+    canvas.lpsbuilddate,
+    canvas.runtime,
+    LzBrowser.getVersion());
+}
+
+//---
+// Display version info
+//---
+Debug.versionInfo = function () {
+  this.write(this.versionInfoString());
+}
+
+
+//---
 // Display the properties of an object on the debug console.
 //
 // <code>Debug.inspect</code> displays each of the properties of its
Index: WEB-INF/lps/lfc/debugger/LzRemote.as
===================================================================
--- WEB-INF/lps/lfc/debugger/LzRemote.as	(revision 1151)
+++ WEB-INF/lps/lfc/debugger/LzRemote.as	(working copy)
@@ -43,7 +43,7 @@
     init.attributes.filename         = filename;
     init.attributes.language         = "LZX";
     init.attributes.protocol_version = "1.0";
-    init.attributes.build      = canvas.build;
+    init.attributes.build      = canvas.lpsbuild;
     init.attributes.lpsversion = canvas.lpsversion;
     init.attributes.lpsrelease = canvas.lpsrelease;
     init.attributes.runtime    = canvas.runtime;
Index: WEB-INF/lps/config/lps.properties
===================================================================
--- WEB-INF/lps/config/lps.properties	(revision 1151)
+++ WEB-INF/lps/config/lps.properties	(working copy)
@@ -146,6 +146,8 @@
 #===============================================================================
 # Compiler parameters
 compiler.runtime.default=swf7
+compiler.debug.backtrace=true
+compiler.warn.globalassignments=true
 
 #===============================================================================
 # i18n locale parameter
Index: WEB-INF/lps/server/src/org/openlaszlo/compiler/CanvasCompiler.java
===================================================================
--- WEB-INF/lps/server/src/org/openlaszlo/compiler/CanvasCompiler.java	(revision 1151)
+++ WEB-INF/lps/server/src/org/openlaszlo/compiler/CanvasCompiler.java	(working copy)
@@ -187,7 +187,8 @@
         setDimension(attrs, "width", canvas.getWidth());
         setDimension(attrs, "height", canvas.getHeight());
         
-        attrs.put("build", ScriptCompiler.quote(LPS.getBuild()));
+        attrs.put("lpsbuild", ScriptCompiler.quote(LPS.getBuild()));
+        attrs.put("lpsbuilddate", ScriptCompiler.quote(LPS.getBuildDate()));
         attrs.put("lpsversion", ScriptCompiler.quote(LPS.getVersion()));
         attrs.put("lpsrelease", ScriptCompiler.quote(LPS.getRelease()));
         attrs.put("runtime", ScriptCompiler.quote(canvas.getRuntime()));
Index: WEB-INF/lps/server/build.xml
===================================================================
--- WEB-INF/lps/server/build.xml	(revision 1151)
+++ WEB-INF/lps/server/build.xml	(working copy)
@@ -49,9 +49,28 @@
   <property name="sc.build.java"
            value="${build.java}/org/openlaszlo/sc" />
 
+  <target name="get-svn-info" unless="done.get-svn-info">
+      <sequential>
+          <!-- Get the current repository information -->
+          <exec executable="svn" output="repository-info.xml">
+              <arg value="info" />
+              <arg value="--xml" />
+              <arg value="${LPS_HOME}" />
+          </exec>
+          <property name="done.get-svn-info" value="true" />
+      </sequential>
+  </target>
+
+  <target name="setup-build-id" depends="get-svn-info" unless="build.id">
+      <!-- Load repository information into properties -->
+      <xmlproperty file="repository-info.xml"/>
+      <property name="build.id" value="${info.entry(revision)} ${info.entry(path)}" />
+      <echo message="build.id is ${build.id}" />
+  </target>
+
   <!--===============  Target [init]  ===================-->
   <!-- Initialize property values for other targets to use. -->
-  <target name="init" unless="done.server.init" depends="build-opt">
+  <target name="init" unless="done.server.init" depends="build-opt,setup-build-id">
     <tstamp/>
 
   <!-- Ignore the system classpath -->
@@ -267,7 +286,7 @@
     <!-- Create LPS.xml based on timestamp -->
     <tstamp>
         <format property="BUILDDATE" 
-                pattern="hh:mm aa dd-MMM-yyyy" locale="en"/>
+                pattern="yyyy-MM-dd'T'HH:mm:ssZ" locale="en"/>
     </tstamp>
     <copy overwrite="true" tofile="build/org/openlaszlo/server/lps.xml"
             file="src/org/openlaszlo/server/lps.xml.proto">
Index: build.properties
===================================================================
--- build.properties	(revision 1151)
+++ build.properties	(working copy)
@@ -5,8 +5,12 @@
 LPS_NAME = OpenLaszlo
 version.id = 4.0.x
 version.id.upper = 4.0.x
+# Set this in a release to the release name
 release = Latest
 release.id = 4.0.x
+# Set this in a release to the release build
+# Otherwise an ant task will compute it from svn
+#build.id
 
 build.java.version = 1.4
 build.min.java.version = 1.4.2
Index: build-tools/build-opt.xml
===================================================================
--- build-tools/build-opt.xml	(revision 1151)
+++ build-tools/build-opt.xml	(working copy)
@@ -1,4 +1,4 @@
-<target name="build-opt" unless="done.build-opt">
+<target name="build-opt" unless="done.build-opt" depends="">
 
 <!-- * X_LZ_COPYRIGHT_BEGIN ***************************************************
 * Copyright 2001-2006 Laszlo Systems, Inc.  All Rights Reserved.              *
@@ -24,14 +24,6 @@
     <property name="build.tools" value="" />
     <property name="build.qa" value="" />
     
-    <!-- We usually don't want an official build id. Just use "INTERNAL"
-        unless the current user is "laszlo" --> 
-    <condition property="build.id" value="x.x.x.x" else="INTERNAL">
-        <not>
-            <equals arg1="${user.name}" arg2="laszlo" />
-        </not>
-    </condition>
-    
     <condition property="isautomatedbuild">
          <equals arg1="${user.name}" arg2="laszlo" />
     </condition>
