diff -r b60bbeac9080 core/AvmCore.cpp
--- a/core/AvmCore.cpp	Mon Dec 21 16:14:30 2009 -0800
+++ b/core/AvmCore.cpp	Mon Dec 21 16:46:16 2009 -0800
@@ -170,7 +170,8 @@
 		, passAllExceptionsToDebugger(false)
 #endif
 #ifdef AVMPLUS_VERIFYALL
-		, verifyQueue(g, 0)
+		, verifyFunctionQueue(g, 0)
+		, verifyTraitsQueue(g, 0)
 #endif
 		, livePools(NULL)
 		, m_tbCache(new (g) QCache(CacheSizes::DEFAULT_BINDINGS, g))
@@ -4338,16 +4339,14 @@
 		if (config.verifyall &&
                 f && !f->isVerified() && !f->isVerifyPending()) {
 			f->setVerifyPending();
-			verifyQueue.add(f);
+			verifyFunctionQueue.add(f);
 		}
 	}
 
 	void AvmCore::enqTraits(Traits* t) {
         if (config.verifyall && !t->isInterface()) {
-			TraitsBindingsp td = t->getTraitsBindings();
-            enqFunction(t->init);
-		    for (int i=0, n=td->methodCount; i < n; i++)
-                enqFunction(td->getMethod(i));
+            if (verifyTraitsQueue.indexOf(t) < 0)
+                verifyTraitsQueue.add(t);
         }
 	}
 
@@ -4356,8 +4355,16 @@
 		int verified = 0;
 		do {
 			verified = 0;
-			while (!verifyQueue.isEmpty()) {
-				MethodInfo* f = verifyQueue.removeLast();
+            while (!verifyTraitsQueue.isEmpty()) {
+                Traits* t = verifyTraitsQueue.removeFirst();
+                t->resolveSignatures(toplevel);
+                TraitsBindingsp td = t->getTraitsBindings();
+                enqFunction(t->init);
+                for (int i=0, n=td->methodCount; i < n; i++)
+                    enqFunction(td->getMethod(i));
+            }
+			while (!verifyFunctionQueue.isEmpty()) {
+				MethodInfo* f = verifyFunctionQueue.removeLast();
 				if (!f->isVerified()) {
 					if (f->declaringTraits()->init != f && f->declaringScope() == NULL) {
 						verifyQueue2.add(f);
@@ -4370,7 +4377,7 @@
 				}
 			}
 			while (!verifyQueue2.isEmpty())
-				verifyQueue.add(verifyQueue2.removeLast());
+				verifyFunctionQueue.add(verifyQueue2.removeLast());
 		} while (verified > 0);
 	}
 #endif
diff -r b60bbeac9080 core/AvmCore.h
--- a/core/AvmCore.h	Mon Dec 21 16:14:30 2009 -0800
+++ b/core/AvmCore.h	Mon Dec 21 16:46:16 2009 -0800
@@ -214,8 +214,10 @@
 		#endif
 		
 #ifdef AVMPLUS_VERIFYALL
+    private:
+        List<MethodInfo*, LIST_GCObjects> verifyFunctionQueue;
+        List<Traits*, LIST_GCObjects> verifyTraitsQueue;
 	public:
-        List<MethodInfo*, LIST_GCObjects> verifyQueue;
 		void enqFunction(MethodInfo* f);
 		void enqTraits(Traits* t);
 		void verifyEarly(Toplevel* toplevel, AbcEnv* abc_env);
diff -r b60bbeac9080 core/MethodInfo.cpp
--- a/core/MethodInfo.cpp	Mon Dec 21 16:14:30 2009 -0800
+++ b/core/MethodInfo.cpp	Mon Dec 21 16:46:16 2009 -0800
@@ -223,8 +223,11 @@
 	{
 		MethodInfo* f = env->method;
 
+f->pool()->core->console<<"LATE verify "<<f<<"\n";
 		#ifdef AVMPLUS_VERIFYALL
 		// never verify late in verifyall mode
+AvmAssert(!f->isVerified());
+AvmAssert(!f->isVerifyPending());
 		AvmAssert(!f->pool()->core->config.verifyall);
 		#endif
 
