Index: trunk/Include/Classes/System/Object.ab
===================================================================
--- trunk/Include/Classes/System/Object.ab	(revision 447)
+++ trunk/Include/Classes/System/Object.ab	(revision 449)
@@ -59,5 +59,5 @@
 
 	Private
-		typeInfo As TypeInfo
+		_system_object_member_typeInfo As TypeInfo
 
 	Public
@@ -67,9 +67,9 @@
 			End If
 
-			This.typeInfo = typeInfo
+			This._system_object_member_typeInfo = typeInfo
 		End Sub
 
 		Virtual Function GetType() As TypeInfo
-			Return typeInfo
+			Return _system_object_member_typeInfo
 		End Function
 
Index: trunk/Include/system/gc.sbp
===================================================================
--- trunk/Include/system/gc.sbp	(revision 447)
+++ trunk/Include/system/gc.sbp	(revision 449)
@@ -463,15 +463,14 @@
 	@date	2007/10/21
 	*/
-	Function ScanObject(pObject As *Object, pbMark As *Byte) As Boolean
-		Dim classTypeInfo = Nothing As ActiveBasic.Core._System_TypeForClass
-		classTypeInfo = pObject->GetType() As ActiveBasic.Core._System_TypeForClass
-
+	Function ScanObject( classTypeInfo As ActiveBasic.Core._System_TypeForClass, pObject As *Object, pbMark As *Byte) As Boolean
 		If IsNull( classTypeInfo ) Then
 			Return False
 		End If
 
-		If Object.ReferenceEquals( classTypeInfo, ActiveBasic.Core._System_TypeBase.selfTypeInfo ) Then
-			' TypeInfoクラスの場合はTypeBaseImplクラスとして扱う
-			classTypeInfo = _System_TypeBase_Search( "ActiveBasic.Core.TypeBaseImpl" ) As ActiveBasic.Core._System_TypeForClass
+		' 基底クラスをスキャン
+		If Not IsNull( classTypeInfo.BaseType ) Then
+			Dim baseClassTypeInfo = Nothing As ActiveBasic.Core._System_TypeForClass
+			baseClassTypeInfo = classTypeInfo.BaseType As ActiveBasic.Core._System_TypeForClass
+			ScanObject( baseClassTypeInfo, pObject, pbMark )
 		End If
 
@@ -488,4 +487,15 @@
 
 		Return True
+	End Function
+	Function ScanObject(pObject As *Object, pbMark As *Byte) As Boolean
+		Dim classTypeInfo = Nothing As ActiveBasic.Core._System_TypeForClass
+		classTypeInfo = pObject->GetType() As ActiveBasic.Core._System_TypeForClass
+
+		If Object.ReferenceEquals( classTypeInfo, ActiveBasic.Core._System_TypeBase.selfTypeInfo ) Then
+			' TypeInfoクラスの場合はTypeBaseImplクラスとして扱う
+			classTypeInfo = _System_TypeBase_Search( "ActiveBasic.Core.TypeBaseImpl" ) As ActiveBasic.Core._System_TypeForClass
+		End If
+
+		Return ScanObject( classTypeInfo, pObject, pbMark )
 	End Function
 
