diff --git a/src/hb-iter.hh b/src/hb-iter.hh
index 215b190..7b975e6 100644
--- a/src/hb-iter.hh
+++ b/src/hb-iter.hh
@@ -48,11 +48,9 @@
  * Base classes for iterators.
  */
 
-template <typename Item> struct hb_iter_of_t {};
-
 /* Base class for all iterators. */
 template <typename Iter, typename Item = typename Iter::__item_type__>
-struct hb_iter_t : hb_iter_of_t<Item>
+struct hb_iter_t
 {
   typedef Iter iter_t;
   typedef Item item_t;
@@ -163,11 +161,11 @@
 
 /* hb_is_iterator() / hb_is_sorted_iterator() */
 
-template<typename Item = void> char _hb_is_iterator (...) { return 0; };
-template<typename Item> int _hb_is_iterator (hb_iter_of_t<Item> *) { return 0; };
-template<typename Item> int _hb_is_iterator (hb_iter_of_t<const Item> *) { return 0; };
-template<typename Item> int _hb_is_iterator (hb_iter_of_t<Item&> *) { return 0; };
-template<typename Item> int _hb_is_iterator (hb_iter_of_t<const Item&> *) { return 0; };
+template<typename Iter = void, typename Item = void> char _hb_is_iterator (...) { return 0; };
+template<typename Iter, typename Item> int _hb_is_iterator (hb_iter_t<Iter, Item> *) { return 0; };
+template<typename Iter, typename Item> int _hb_is_iterator (hb_iter_t<Iter, const Item> *) { return 0; };
+template<typename Iter, typename Item> int _hb_is_iterator (hb_iter_t<Iter, Item&> *) { return 0; };
+template<typename Iter, typename Item> int _hb_is_iterator (hb_iter_t<Iter, const Item&> *) { return 0; };
 static_assert (sizeof (char) != sizeof (int), "");
 template<typename Iter, typename Item>
 struct hb_is_iterator { enum {
