--- public/common/unicode/pmac.h
+++ public/common/unicode/pmac.h
@@ -50,6 +50,16 @@
 #endif
 
 #include <AvailabilityMacros.h>
+#include <TargetConditionals.h>
+
+/**
+ * Add a second platform define to handle differences between Mac OS X and iOS
+ */
+#if TARGET_OS_IPHONE
+#ifndef U_IOS
+#define U_IOS
+#endif
+#endif
 
 /**
  * \def U_HAVE_DIRENT_H
@@ -288,11 +299,16 @@
 #if 1
 #define U_TZSET         tzset
 #endif
+#ifndef U_IOS
+/* The iOS version of timezone is busted (at least in the simulator, it is
+   never set to anything useful). Leave it undefined to avoid a code path
+   in putil.c. */
 #if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_5
 #define U_TIMEZONE 0
 #else
 #define U_TIMEZONE timezone
 #endif
+#endif  // !U_IOS
 #if 1
 #define U_TZNAME        tzname
 #endif
--- source/common/putil.c
+++ source/common/putil.c
@@ -623,20 +623,28 @@ uprv_timezone()
 #else
     time_t t, t1, t2;
     struct tm tmrec;
+#ifndef U_IOS
     UBool dst_checked;
+#endif
     int32_t tdiff = 0;
 
     time(&t);
     uprv_memcpy( &tmrec, localtime(&t), sizeof(tmrec) );
+#ifndef U_IOS
     dst_checked = (tmrec.tm_isdst != 0); /* daylight savings time is checked*/
+#endif
     t1 = mktime(&tmrec);                 /* local time in seconds*/
     uprv_memcpy( &tmrec, gmtime(&t), sizeof(tmrec) );
     t2 = mktime(&tmrec);                 /* GMT (or UTC) in seconds*/
     tdiff = t2 - t1;
+#ifndef U_IOS
+    /* On iOS the calculated tdiff is correct so and doesn't need this dst
+       shift applied. */
     /* imitate NT behaviour, which returns same timezone offset to GMT for
        winter and summer*/
     if (dst_checked)
         tdiff += 3600;
+#endif
     return tdiff;
 #endif
 }
@@ -649,7 +661,7 @@ uprv_timezone()
 extern U_IMPORT char *U_TZNAME[];
 #endif
 
-#if !UCONFIG_NO_FILE_IO && (defined(U_DARWIN) || defined(U_LINUX) || defined(U_BSD))
+#if !UCONFIG_NO_FILE_IO && ((defined(U_DARWIN) && !defined(U_IOS)) || defined(U_LINUX) || defined(U_BSD))
 /* These platforms are likely to use Olson timezone IDs. */
 #define CHECK_LOCALTIME_LINK 1
 #if defined(U_DARWIN)
