diff --git a/build.properties b/build.properties
index e7a0817..aec89c3 100644
--- a/build.properties
+++ b/build.properties
@@ -1,6 +1,6 @@
 #*
 #*******************************************************************************
-#* Copyright (C) 2006-2007, International Business Machines Corporation and    *
+#* Copyright (C) 2006-2008, International Business Machines Corporation and    *
 #* others. All Rights Reserved.                                                *
 #*******************************************************************************
 #* This is the properties file for ICU4J builds. 
@@ -8,10 +8,10 @@
 icu4j.spec.version.string=3.6
 icu4j.impl.version.string=3.6.1
 icu4j.version.number=36
-current.year=2007
+current.year=2008
 icu4j.previous.version.number=34
 api.report.out=${api.dir}/icu4j_compare_${icu4j.previous.version.number}_${icu4j.version.number}.html
-copyright=Copyright (c) 2000-2007, International Business Machines Corporation and others.  All Rights Reserved.
+copyright=Copyright (c) 2000-2008, International Business Machines Corporation and others.  All Rights Reserved.
 corp=IBM Corporation
-copyright.eclipse=Licensed Materials - Property of IBM \n (C) Copyright IBM Corp. 2000, 2007. All Rights Reserved. \n IBM is a registered trademark of IBM Corp.
-icu4j.eclipse.build.version.string=3.6.1.v20071211
+copyright.eclipse=Licensed Materials - Property of IBM \n (C) Copyright IBM Corp. 2000, 2008. All Rights Reserved. \n IBM is a registered trademark of IBM Corp.
+icu4j.eclipse.build.version.string=3.6.1.v20080103
diff --git a/src/com/ibm/icu/dev/test/format/DateFormatTest.java b/src/com/ibm/icu/dev/test/format/DateFormatTest.java
index 4f4d923..01c10b9 100755
--- a/src/com/ibm/icu/dev/test/format/DateFormatTest.java
+++ b/src/com/ibm/icu/dev/test/format/DateFormatTest.java
@@ -1,6 +1,6 @@
  /*
  *******************************************************************************
- * Copyright (C) 2001-2006, International Business Machines Corporation and    *
+ * Copyright (C) 2001-2008, International Business Machines Corporation and    *
  * others. All Rights Reserved.                                                *
  *******************************************************************************
  */
@@ -433,18 +433,22 @@
 
     public void TestTimeZoneDisplayName() {
         Calendar cal = new GregorianCalendar();
-        long julyDate = new Date(2004, 6, 15).getTime();
-        long januaryDate = new Date(2004, 0, 15).getTime();
+        SimpleDateFormat testfmt = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
 
         for (int i = 0; i < fallbackTests.length; ++i) {
             String[] info = fallbackTests[i];
             logln(info[0] + ";" + info[1] + ";" + info[2] + ";" + info[3]);
 
+            long time = 0;
+            try {
+                Date testd = testfmt.parse(info[2]);
+                time = testd.getTime();
+            } catch (ParseException pe) {
+                errln("Failed to parse test date data");
+                continue;
+            }
             ULocale l = new ULocale(info[0]);
             TimeZone tz = TimeZone.getTimeZone(info[1]);
-            long time = info[2].equals("2004-07-15T00:00:00Z") 
-                ? julyDate 
-                : januaryDate;
             SimpleDateFormat fmt = new SimpleDateFormat(info[3], l);
             cal.setTimeInMillis(time);
             cal.setTimeZone(tz);
diff --git a/src/com/ibm/icu/dev/test/timezone/TimeZoneTest.java b/src/com/ibm/icu/dev/test/timezone/TimeZoneTest.java
index 1b2cd54..a6c8ef7 100755
--- a/src/com/ibm/icu/dev/test/timezone/TimeZoneTest.java
+++ b/src/com/ibm/icu/dev/test/timezone/TimeZoneTest.java
@@ -1,6 +1,6 @@
 /**
  *******************************************************************************
- * Copyright (C) 2000-2006, International Business Machines Corporation and    *
+ * Copyright (C) 2000-2008, International Business Machines Corporation and    *
  * others. All Rights Reserved.                                                *
  *******************************************************************************
  */
@@ -113,7 +113,7 @@
             new ZoneDescriptor("EST", -300, false),// updated Aug 2003 aliu
             new ZoneDescriptor("PRT", -240, false),
             new ZoneDescriptor("CNT", -210, true),
-            new ZoneDescriptor("AGT", -180, false),
+            new ZoneDescriptor("AGT", -180, true), // updated by tzdata 2007k
             new ZoneDescriptor("BET", -180, true),
             // new ZoneDescriptor("CAT", -60, false), // Wrong:
             // As of bug 4130885, fix CAT (Central Africa)
diff --git a/src/com/ibm/icu/impl/data/icudata.jar b/src/com/ibm/icu/impl/data/icudata.jar
index 0153412..1fb92cc 100644
--- a/src/com/ibm/icu/impl/data/icudata.jar
+++ b/src/com/ibm/icu/impl/data/icudata.jar
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:dc141949fa4c1a81e64308e6ac17833103a6303833ed8c05dded8df79148ac2a
-size 5073017
+oid sha256:afb83352cc2aa5dbf41f5fd21376716208315882ce105e247fe1fd6ff1dd5d22
+size 5061612
