Index: indico/MaKaC/common/fossilize.py
===================================================================
--- indico/MaKaC/common/fossilize.py	(revision a217dc1f7cb34e7f692e6e077fdcb0e32c875a17)
+++ indico/MaKaC/common/fossilize.py	(revision 6245d868eab278c86f83ca4d3110bb989573f261)
@@ -196,9 +196,4 @@
             if ttype in [int, str, float, NoneType]:
                 return target
-            elif ttype in [list, set, tuple]:
-                container = [] #we turn sets and tuples into lists since JSON does not have sets / tuples
-                for elem in target:
-                    container.append(fossilize(elem, interface, useAttrCache, **kwargs))
-                return container
             elif ttype is dict:
                 container = {}
@@ -206,6 +201,13 @@
                     container[key] = fossilize(value, interface, useAttrCache, **kwargs)
                 return container
-            else:
-                raise NonFossilizableException()
+            elif hasattr(target, '__iter__'):
+                #we turn sets and tuples into lists since JSON does not have sets / tuples
+                return list(fossilize(elem,
+                                      interface,
+                                      useAttrCache,
+                                      **kwargs) for elem in target)
+            else:
+                raise NonFossilizableException("Type %s is not fossilizable!" %
+                                               ttype)
 
             return fossilize(target, interface, useAttrCache)
Index: tests/MaKaC_tests/common_tests/testFossilize.py
===================================================================
--- tests/MaKaC_tests/common_tests/testFossilize.py	(revision 1881c67f9a05a17675c14080607b16027a9f7235)
+++ tests/MaKaC_tests/common_tests/testFossilize.py	(revision 6245d868eab278c86f83ca4d3110bb989573f261)
@@ -248,13 +248,6 @@
         s1 = SimpleClass(10, 20, 'foo')
         d1 = DerivedClass(10, 50, 'bar')
-        self.assertEquals(fossilize([s1, d1], {SimpleClass: ISimpleFossil2Fossil, DerivedClass: ISimpleFossil1Fossil}),
+        self.assertEquals(fossilize([s1, d1], {"MaKaC_tests.common_tests.testFossilize.SimpleClass": ISimpleFossil2Fossil, "MaKaC_tests.common_tests.testFossilize.DerivedClass": ISimpleFossil1Fossil}),
                           [s1.fossilize(ISimpleFossil2Fossil), d1.fossilize(ISimpleFossil1Fossil)])
-        self.assertEquals(fossilize([s1, d1], {"SimpleClass": ISimpleFossil2Fossil, "DerivedClass": ISimpleFossil1Fossil}),
-                          [s1.fossilize(ISimpleFossil2Fossil), d1.fossilize(ISimpleFossil1Fossil)])
-        self.assertEquals(fossilize([s1, d1], {"MaKaC_tests.common_tests.testFossilize.SimpleClass": ISimpleFossil2Fossil,
-                                               "MaKaC_tests.common_tests.testFossilize.DerivedClass": ISimpleFossil1Fossil}),
-                          [s1.fossilize(ISimpleFossil2Fossil), d1.fossilize(ISimpleFossil1Fossil)])
-        self.assertEquals(fossilize([s1, d1], {SimpleClass: ISimpleFossil2Fossil}),
-                          [s1.fossilize(ISimpleFossil2Fossil), d1.fossilize(ISimpleFossil2Fossil)])
 
 
