diff --git a/lib/haxe/src/org/apache/thrift/helper/IntSet.hx b/lib/haxe/src/org/apache/thrift/helper/IntSet.hx
index 91e5d8e..676463b 100644
--- a/lib/haxe/src/org/apache/thrift/helper/IntSet.hx
+++ b/lib/haxe/src/org/apache/thrift/helper/IntSet.hx
@@ -30,9 +30,7 @@
 
     public function new( values : Array<Int> = null) {
         if ( values != null) {
-            for ( value in values) {
-                 add(value);
-            }
+            addRange(values.iterator());
         }
     }
 
@@ -57,6 +55,14 @@
         return true;
     }
 
+    public function addRange( values : Iterator<Int>) {
+        if ( values != null) {
+            for ( value in values) {
+                 add(value);
+            }
+        }
+    }
+
     public function clear() : Void {
         while( _size > 0) {
             remove( _elements.keys().next());
diff --git a/lib/haxe/src/org/apache/thrift/helper/ObjectSet.hx b/lib/haxe/src/org/apache/thrift/helper/ObjectSet.hx
index 60e88e4..5a3831c 100644
--- a/lib/haxe/src/org/apache/thrift/helper/ObjectSet.hx
+++ b/lib/haxe/src/org/apache/thrift/helper/ObjectSet.hx
@@ -30,9 +30,7 @@
 
     public function new( values : Array<K> = null) {
         if ( values != null) {
-            for ( value in values) {
-                 add(value);
-            }
+            addRange(values.iterator());
         }
     }
 
@@ -57,6 +55,14 @@
         return true;
     }
 
+    public function addRange( values : Iterator<K>) {
+        if ( values != null) {
+            for ( value in values) {
+                 add(value);
+            }
+        }
+    }
+
     public function clear() : Void {
         while( _size > 0) {
             remove( _elements.keys().next());
diff --git a/lib/haxe/src/org/apache/thrift/helper/StringSet.hx b/lib/haxe/src/org/apache/thrift/helper/StringSet.hx
index b47f868..2c255e6 100644
--- a/lib/haxe/src/org/apache/thrift/helper/StringSet.hx
+++ b/lib/haxe/src/org/apache/thrift/helper/StringSet.hx
@@ -30,9 +30,7 @@
 
     public function new( values : Array<String> = null) {
         if ( values != null) {
-            for ( value in values) {
-                 add(value);
-            }
+            addRange(values.iterator());
         }
     }
 
@@ -57,6 +55,14 @@
         return true;
     }
 
+    public function addRange( values : Iterator<String>) {
+        if ( values != null) {
+            for ( value in values) {
+                 add(value);
+            }
+        }
+    }
+
     public function clear() : Void {
         while( _size > 0) {
             remove( _elements.keys().next());
