diff --git a/res/values-v16/strings.xml b/res/values-v16/strings.xml
new file mode 100644
index 0000000..1c16be9
--- /dev/null
+++ b/res/values-v16/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2013 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- Legend for the * symbol to mean that the time zone has
+     a future day light savings time [CHAR LIMIT=30] -->
+    <string name="dst_note">\u2600 Observes daylight saving time</string>
+</resources>
\ No newline at end of file
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 7a6f8d2..395458a 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -53,7 +53,7 @@
 
     <!-- Legend for the * symbol to mean that the time zone has
      a future day light savings time [CHAR LIMIT=30] -->
-    <string name="dst_note">\u2600 Observes daylight saving time</string>
+    <string name="dst_note">\u002A Observes daylight saving time</string>
 
     <!-- Description of clear icon in the search bar, for accessibility. [CHAR LIMIT=NONE]-->
     <string name="searchview_description_clear">Clear query</string>
diff --git a/src/com/android/timezonepicker/TimeZoneInfo.java b/src/com/android/timezonepicker/TimeZoneInfo.java
index 38cc855..c8d6eed 100644
--- a/src/com/android/timezonepicker/TimeZoneInfo.java
+++ b/src/com/android/timezonepicker/TimeZoneInfo.java
@@ -182,7 +182,9 @@
             mSB.append(')');
 
             if (hasFutureDST) {
-                mSB.append(" \u2600"); // Sun symbol
+                String dstSymbol = TimeZonePickerUtils.getDstSymbol();
+                mSB.append(" ");
+                mSB.append(dstSymbol); // Sun symbol
             }
 
             displayName = mSB.toString();
diff --git a/src/com/android/timezonepicker/TimeZonePickerUtils.java b/src/com/android/timezonepicker/TimeZonePickerUtils.java
index 0580df3..a6a8bfe 100644
--- a/src/com/android/timezonepicker/TimeZonePickerUtils.java
+++ b/src/com/android/timezonepicker/TimeZonePickerUtils.java
@@ -16,6 +16,8 @@
 
 package com.android.timezonepicker;
 
+import android.content.Context;
+import android.os.Build;
 import android.text.format.DateUtils;
 import android.text.format.Time;
 
@@ -24,6 +26,8 @@
 
 public class TimeZonePickerUtils {
 
+    private static String mDstSymbol;
+
     /**
      * Given a timezone id (e.g. America/Los_Angeles), returns the corresponding timezone
      * display name (e.g. (GMT-7.00) Pacific Time).
@@ -73,9 +77,19 @@
         sb.append(displayName);
 
         if (tz.useDaylightTime()) {
-            sb.append(" \u2600"); // Sun symbol
+            String dstSymbol = getDstSymbol();
+            sb.append(" ");
+            sb.append(dstSymbol); // Sun symbol
         }
         return sb.toString();
     }
 
+    public static String getDstSymbol() {
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
+            return "\u2600"; // The Sun emoji icon.
+        } else {
+            return "*";
+        }
+    }
+
 }
