Index: /trunk/abdev/BasicCompiler32/Compile_Func.cpp
===================================================================
--- /trunk/abdev/BasicCompiler32/Compile_Func.cpp	(revision 334)
+++ /trunk/abdev/BasicCompiler32/Compile_Func.cpp	(revision 335)
@@ -296,5 +296,5 @@
 	userProc.Using();
 }
-void Opcode_CreateSimpleDelegate( const CClass &dgClass, const char *methodInstanceName, const UserProc &userProc )
+void Opcode_CreateDelegate( const CClass &dgClass, const char *methodInstanceName, const UserProc &userProc )
 {
 	/////////////////////////////////////////////////////////////////
@@ -401,5 +401,5 @@
 		{
 			// デリゲートのとき
-			Opcode_CreateSimpleDelegate( baseType.GetClass(), name, *pUserProc );
+			Opcode_CreateDelegate( baseType.GetClass(), name, *pUserProc );
 		}
 		resultType = baseType;
Index: /trunk/abdev/BasicCompiler_Common/src/Delegate.cpp
===================================================================
--- /trunk/abdev/BasicCompiler_Common/src/Delegate.cpp	(revision 334)
+++ /trunk/abdev/BasicCompiler_Common/src/Delegate.cpp	(revision 335)
@@ -188,3 +188,8 @@
 		destSource += sourceTemplate.GetResult( values );
 	}
+/*
+	ofstream ofs( ( Jenga::Common::Environment::GetAppDir() + "\\generated_delegate_code.log" ).c_str() );
+	ofs << destSource;
+	ofs.close();
+	*/
 }
Index: /trunk/abdev/BasicCompiler_Common/src/Type.cpp
===================================================================
--- /trunk/abdev/BasicCompiler_Common/src/Type.cpp	(revision 334)
+++ /trunk/abdev/BasicCompiler_Common/src/Type.cpp	(revision 335)
@@ -512,17 +512,20 @@
 		if( pUserProc )
 		{
-			// 基底クラスでの自己解決
-			const CClass *pClass = &classType.GetClass();
-			while( pClass->HasSuperClass() )
+			if( classType.IsObject() )
 			{
-				if( pUserProc->GetParentClassPtr() == &pClass->GetSuperClass() )
+				// 基底クラスでの自己解決
+				const CClass *pClass = &classType.GetClass();
+				while( pClass->HasSuperClass() )
 				{
-					if( pClass->GetSuperClassActualTypeParameters().size() )
+					if( pUserProc->GetParentClassPtr() == &pClass->GetSuperClass() )
 					{
-						// TODO: 適切な形に実装し直す（暫定的にトップの型を持ってきている）
-						typeParameter = pClass->GetSuperClassActualTypeParameters()[0];
+						if( pClass->GetSuperClassActualTypeParameters().size() )
+						{
+							// TODO: 適切な形に実装し直す（暫定的にトップの型を持ってきている）
+							typeParameter = pClass->GetSuperClassActualTypeParameters()[0];
+						}
 					}
+					pClass = &pClass->GetSuperClass();
 				}
-				pClass = &pClass->GetSuperClass();
 			}
 		}
