diff --git a/license.html b/license.html
index ba2871a..7ae0252 100644
--- a/license.html
+++ b/license.html
@@ -11,7 +11,7 @@
 <p>COPYRIGHT AND PERMISSION NOTICE</p>
 
 <p>
-Copyright (c) 1995-2009 International Business Machines Corporation and others
+Copyright (c) 1995-2010 International Business Machines Corporation and others
 </p>
 <p>
 All rights reserved.
diff --git a/source/common/uresbund.c b/source/common/uresbund.c
index c32b205..7b7afec 100644
--- a/source/common/uresbund.c
+++ b/source/common/uresbund.c
@@ -598,6 +598,11 @@
                     }
                     t1 = t2;
                 } else {
+                    if (usingUSRData) {
+                        /* the USR override data wasn't found, delete it */
+                        uhash_remove(cache, u2);
+                        free_entry(u2);
+                    }
                     /* t2->fCountExisting have to be decremented since the call to init_entry increments
                      * it and if we hit this code, that means it is not set as the parent.
                      */
diff --git a/source/i18n/selfmt.cpp b/source/i18n/selfmt.cpp
index 4c88d9c..6fcec5b 100755
--- a/source/i18n/selfmt.cpp
+++ b/source/i18n/selfmt.cpp
@@ -420,6 +420,7 @@
     if (U_FAILURE(status)){
         return;
     }
+    parsedValuesHash->setValueDeleter(uhash_deleteUnicodeString);
 
     int32_t pos = -1;
     const UHashElement* elem = NULL;
diff --git a/source/i18n/ucoleitr.cpp b/source/i18n/ucoleitr.cpp
index ed3ebb2..b83046d 100644
--- a/source/i18n/ucoleitr.cpp
+++ b/source/i18n/ucoleitr.cpp
@@ -1,6 +1,6 @@
 /*
 ******************************************************************************
-*   Copyright (C) 2001-20109, International Business Machines
+*   Copyright (C) 2001-2010, International Business Machines
 *   Corporation and others.  All Rights Reserved.
 ******************************************************************************
 *
@@ -684,6 +684,10 @@
     
     /* free offset buffer to avoid memory leak before initializing. */
     ucol_freeOffsetBuffer(&(elems->iteratordata_));
+    /* Ensure that previously allocated extendCEs is freed before setting to NULL. */
+    if (elems->iteratordata_.extendCEs != NULL) {
+        uprv_free(elems->iteratordata_.extendCEs);
+    }
     uprv_init_collIterate(elems->iteratordata_.coll, text, textLength, 
                           &elems->iteratordata_, status);
 
diff --git a/source/test/intltest/selfmts.cpp b/source/test/intltest/selfmts.cpp
index 484bc29..e81d44f 100644
--- a/source/test/intltest/selfmts.cpp
+++ b/source/test/intltest/selfmts.cpp
@@ -115,6 +115,9 @@
         }
     }
 
+    delete selFmt;
+    selFmt = NULL;
+
     logln("SelectFormat Unit Test : Creating format object for Testing applying various patterns");
     status = U_ZERO_ERROR;
     selFmt = new SelectFormat( SIMPLE_PATTERN , status); 
@@ -164,6 +167,9 @@
         "*Keyword-_"        //Starts with a sepial character not allowed
     };
 
+    delete selFmt;
+    selFmt = NULL;
+
     selFmt = new SelectFormat( SIMPLE_PATTERN , status); 
     for (int32_t i = 0; i< 6; i++ ){
         status = U_ZERO_ERROR;
diff --git a/unicode-license.txt b/unicode-license.txt
index cf5cfdb..900059f 100644
--- a/unicode-license.txt
+++ b/unicode-license.txt
@@ -16,7 +16,7 @@
 
     COPYRIGHT AND PERMISSION NOTICE
 
-    Copyright © 1991-2008 Unicode, Inc. All rights reserved. Distributed under
+    Copyright © 1991-2009 Unicode, Inc. All rights reserved. Distributed under
 the Terms of Use in http://www.unicode.org/copyright.html.
 
     Permission is hereby granted, free of charge, to any person obtaining a copy
