Index: trunk/abdev/BasicCompiler32/Compile_CallProc.cpp
===================================================================
--- trunk/abdev/BasicCompiler32/Compile_CallProc.cpp	(revision 303)
+++ trunk/abdev/BasicCompiler32/Compile_CallProc.cpp	(revision 304)
@@ -105,12 +105,18 @@
 	const CMethod *pMethod = NULL;
 	Type leftType;
+	bool isFixedClass = false;
 	if( pUserProc->GetParentClassPtr() ){
 		//クラスのメンバ関数を呼び出す場合はアクセスチェックを行う
-		if(ObjectName[0] && (dwFlags&PROCFLAG_NEW)==0){
-			if(lstrcmpi(ObjectName,"Super")==0){
+		if(ObjectName[0] && (dwFlags&PROCFLAG_NEW)==0)
+		{
+			if(lstrcmpi(ObjectName,"Super")==0)
+			{
 				//クラスメンバ関数内から基底クラスの呼び出し
-				pobj_c=compiler.pCompilingClass;
-			}
-			else{
+				pobj_c=&compiler.pCompilingClass->GetSuperClass();
+
+				isFixedClass = true;
+			}
+			else
+			{
 				//"->"によってオブジェクトを指定する通常のメンバ関数呼び出し
 				Type varType;
@@ -313,5 +319,5 @@
 	}
 
-	if( pUserProc->IsVirtual() ){
+	if( pUserProc->IsVirtual() && !isFixedClass ){
 		//仮想関数（オブジェクトメソッド）呼び出し
 		//pObj->func_table->func1
Index: trunk/abdev/BasicCompiler64/Compile_CallProc.cpp
===================================================================
--- trunk/abdev/BasicCompiler64/Compile_CallProc.cpp	(revision 303)
+++ trunk/abdev/BasicCompiler64/Compile_CallProc.cpp	(revision 304)
@@ -113,12 +113,19 @@
 	const CClass *pobj_c = NULL;
 	const CMethod *pMethod = NULL;
+	Type leftType;
+	bool isFixedClass = false;
 	if( pUserProc->GetParentClassPtr() ){
 		//クラスのメンバ関数を呼び出す場合はアクセスチェックを行う
-		if(ObjectName[0] && (dwFlags&PROCFLAG_NEW)==0){
-			if(lstrcmpi(ObjectName,"Super")==0){
+		if(ObjectName[0] && (dwFlags&PROCFLAG_NEW)==0)
+		{
+			if(lstrcmpi(ObjectName,"Super")==0)
+			{
 				//クラスメンバ関数内から基底クラスの呼び出し
-				pobj_c=compiler.pCompilingClass;
-			}
-			else{
+				pobj_c=&compiler.pCompilingClass->GetSuperClass();
+
+				isFixedClass = true;
+			}
+			else
+			{
 				//"->"によってオブジェクトを指定する通常のメンバ関数呼び出し
 				Type varType;
@@ -336,5 +343,5 @@
 	}
 
-	if( pUserProc->IsVirtual() ){
+	if( pUserProc->IsVirtual() && !isFixedClass ){
 		//仮想関数（オブジェクトメソッド）呼び出し
 		//pObj->func_table->func1
Index: trunk/abdev/BasicCompiler_Common/MakeExe.cpp
===================================================================
--- trunk/abdev/BasicCompiler_Common/MakeExe.cpp	(revision 303)
+++ trunk/abdev/BasicCompiler_Common/MakeExe.cpp	(revision 304)
@@ -119,4 +119,5 @@
 
 	ChangeCommandToCode(basbuf);
+	compiler.GetObjectModule().GetSources()[0]._ResetLength();
 
 	//重複エラー情報管理のメモリを解放
Index: trunk/abdev/BasicCompiler_Common/hash.cpp
===================================================================
--- trunk/abdev/BasicCompiler_Common/hash.cpp	(revision 303)
+++ trunk/abdev/BasicCompiler_Common/hash.cpp	(revision 304)
@@ -63,9 +63,11 @@
 		bool isStatic = false;
 		const CClass *pobj_c = NULL;
-		if(lstrcmpi(ObjName,"Super")==0){
+		if(lstrcmpi(ObjName,"Super")==0)
+		{
 			//クラスメンバ関数内から基底クラスの呼び出し
-			pobj_c=compiler.pCompilingClass;
+			pobj_c=&compiler.pCompilingClass->GetSuperClass();
 		}
-		else{
+		else
+		{
 			//"->"によってオブジェクトを指定する通常のメンバ関数呼び出し
 			Type type;
@@ -90,4 +92,5 @@
 				pobj_c->GetMethods().Enum( NestMember, subs );
 			}
+
 			return;
 		}
Index: trunk/abdev/BasicCompiler_Common/include/Source.h
===================================================================
--- trunk/abdev/BasicCompiler_Common/include/Source.h	(revision 303)
+++ trunk/abdev/BasicCompiler_Common/include/Source.h	(revision 304)
@@ -222,4 +222,8 @@
 		return length-2;
 	}
+	void _ResetLength()
+	{
+		length = lstrlen( buffer );
+	}
 
 	const IncludedFilesRelation &GetIncludedFilesRelation() const
Index: trunk/abdev/BasicCompiler_Common/include/option.h
===================================================================
--- trunk/abdev/BasicCompiler_Common/include/option.h	(revision 303)
+++ trunk/abdev/BasicCompiler_Common/include/option.h	(revision 304)
@@ -14,7 +14,7 @@
 // バージョン付加文字列
 #ifdef _AMD64_
-#define VER_INFO		"(x64) (rev.299)"
+#define VER_INFO		"(x64) (rev.306)"
 #else
-#define VER_INFO		"(rev.299)"
+#define VER_INFO		"(rev.306)"
 #endif
 
