diff -r 134c345baf84 make/common/shared/Defs.gmk
--- openjdk.orig/jdk/make/common/shared/Defs.gmk	Thu Jun 18 11:12:13 2009 +0800
+++ openjdk/jdk/make/common/shared/Defs.gmk	Sat Jan 09 00:26:19 2010 +0000
@@ -194,7 +194,7 @@
 
 # Default names
 ifdef OPENJDK
-  LAUNCHER_NAME = openjdk
+  LAUNCHER_NAME = java
   PRODUCT_NAME = OpenJDK
   PRODUCT_SUFFIX = Runtime Environment
   JDK_RC_PLATFORM_NAME = Platform
diff -r 134c345baf84 make/java/version/Makefile
--- openjdk.orig/jdk/make/java/version/Makefile	Thu Jun 18 11:12:13 2009 +0800
+++ openjdk/jdk/make/java/version/Makefile	Sat Jan 09 00:26:19 2010 +0000
@@ -39,7 +39,12 @@
 	$(SED) -e 's/@@launcher_name@@/$(LAUNCHER_NAME)/g' \
 	    -e 's/@@java_version@@/$(RELEASE)/g' \
 	    -e 's/@@java_runtime_version@@/$(FULL_VERSION)/g' \
+	    -e 's/@@jdk_derivative_name@@/$(JDK_DERIVATIVE_NAME)/g' \
+	    -e 's/@@distro_name@@/$(DISTRO_NAME)/g' \
+	    -e 's/@@distro_package_version@@/$(DISTRO_PACKAGE_VERSION)/g' \
 	    -e 's/@@java_runtime_name@@/$(RUNTIME_NAME)/g' \
+	    -e 's/@@jdk_revid@@/$(JDK_REVID)/g' \
+	    -e 's/@@hotspot_revid@@/$(HOTSPOT_REVID)/g' \
 	$< > $@.temp
 	@$(MV) $@.temp $@
 
diff -r 134c345baf84 src/share/classes/sun/misc/Version-template.java
--- openjdk.orig/jdk/src/share/classes/sun/misc/Version-template.java	Thu Jun 18 11:12:13 2009 +0800
+++ openjdk/jdk/src/share/classes/sun/misc/Version-template.java	Sat Jan 09 00:26:19 2010 +0000
@@ -41,6 +41,21 @@
     private static final String java_runtime_version =
         "@@java_runtime_version@@";
 
+    private static final String jdk_derivative_name =
+        "@@jdk_derivative_name@@";
+
+    private static final String distro_name =
+        "@@distro_name@@";
+
+    private static final String distro_package_version =
+        "@@distro_package_version@@";
+
+    private static final String jdk_revid =
+        "@@jdk_revid@@";
+
+    private static final String hotspot_revid =
+        "@@hotspot_revid@@";
+
     static {
         init();
     }
@@ -81,14 +96,34 @@
         /* First line: platform version. */
         ps.println(launcher_name + " version \"" + java_version + "\"");
 
+        String java_vm_name    = System.getProperty("java.vm.name");
+
         /* Second line: runtime version (ie, libraries). */
-        ps.println(java_runtime_name + " (build " +
-                           java_runtime_version + ")");
+        StringBuilder sb = new StringBuilder();
+        if (java_vm_name.toLowerCase().startsWith("cacao")) {
+            sb.append("IcedTea Runtime Environment");
+        } else {
+            sb.append(java_runtime_name);
+        }
+        if (jdk_derivative_name.length() > 0) {
+            sb.append(" (").append(jdk_derivative_name).append(")");
+        }
+        if (distro_package_version.length() > 0) {
+            sb.append(" (").append(distro_package_version).append(")");
+        } else {
+            sb.append(" (");
+            if (distro_name.length() > 0)
+                sb.append(distro_name).append(" ");
+            sb.append("build ").append(java_runtime_version);
+            if (jdk_revid.length() > 0)
+                sb.append("+").append(jdk_revid);
+            sb.append(")");
+        }
+        ps.println(sb.toString());
 
         /* Third line: JVM information. */
-        String java_vm_name    = System.getProperty("java.vm.name");
         String java_vm_version = System.getProperty("java.vm.version");
         String java_vm_info    = System.getProperty("java.vm.info");
         ps.println(java_vm_name + " (build " + java_vm_version + ", " +
                    java_vm_info + ")");
     }
