diff --git a/src/version.cc b/src/version.cc
index b108267..91af761 100644
--- a/src/version.cc
+++ b/src/version.cc
@@ -35,7 +35,7 @@
 #define MAJOR_VERSION     3
 #define MINOR_VERSION     29
 #define BUILD_NUMBER      20
-#define PATCH_LEVEL       0
+#define PATCH_LEVEL       1
 // Use 1 for candidates and 0 otherwise.
 // (Boolean macro values are not supported by all preprocessors.)
 #define IS_CANDIDATE_VERSION 0
diff --git a/src/zone-containers.h b/src/zone-containers.h
index f3ac1a8..2ee1780 100644
--- a/src/zone-containers.h
+++ b/src/zone-containers.h
@@ -17,36 +17,37 @@
 // A wrapper subclass for std::vector to make it easy to construct one
 // that uses a zone allocator.
 template <typename T>
-class ZoneVector : public std::vector<T, zone_allocator<T>> {
+class ZoneVector : public std::vector<T, zone_allocator<T> > {
  public:
   // Constructs an empty vector.
   explicit ZoneVector(Zone* zone)
-      : std::vector<T, zone_allocator<T>>(zone_allocator<T>(zone)) {}
+      : std::vector<T, zone_allocator<T> >(zone_allocator<T>(zone)) {}
 
   // Constructs a new vector and fills it with {size} elements, each
   // having the value {def}.
   ZoneVector(int size, T def, Zone* zone)
-      : std::vector<T, zone_allocator<T>>(size, def, zone_allocator<T>(zone)) {}
+      : std::vector<T, zone_allocator<T> >(size, def, zone_allocator<T>(zone)) {
+  }
 };
 
 // A wrapper subclass std::deque to make it easy to construct one
 // that uses a zone allocator.
 template <typename T>
-class ZoneDeque : public std::deque<T, zone_allocator<T>> {
+class ZoneDeque : public std::deque<T, zone_allocator<T> > {
  public:
   explicit ZoneDeque(Zone* zone)
-      : std::deque<T, zone_allocator<T>>(zone_allocator<T>(zone)) {}
+      : std::deque<T, zone_allocator<T> >(zone_allocator<T>(zone)) {}
 };
 
 // A wrapper subclass for std::queue to make it easy to construct one
 // that uses a zone allocator.
 template <typename T>
-class ZoneQueue : public std::queue<T, std::deque<T, zone_allocator<T>>> {
+class ZoneQueue : public std::queue<T, std::deque<T, zone_allocator<T> > > {
  public:
   // Constructs an empty queue.
   explicit ZoneQueue(Zone* zone)
-      : std::queue<T, std::deque<T, zone_allocator<T>>>(
-            std::deque<T, zone_allocator<T>>(zone_allocator<T>(zone))) {}
+      : std::queue<T, std::deque<T, zone_allocator<T> > >(
+            std::deque<T, zone_allocator<T> >(zone_allocator<T>(zone))) {}
 };
 
 // Typedefs to shorten commonly used vectors.
