diff --git a/include/class.forms.php b/include/class.forms.php
index 202948ed8ebdfc2461e69ffacb996eced512fd5a..d78f8f66c74062974847dc5b9af110e28f5977b5 100644
--- a/include/class.forms.php
+++ b/include/class.forms.php
@@ -56,7 +56,7 @@ class Form {
 
     function setFields($fields) {
 
-        if (!is_array($fields))
+        if (!is_array($fields) && !$fields instanceof Traversable)
             return;
 
         $this->fields = $fields;