Index: BasicCompiler64/Compile_CallProc.cpp
===================================================================
--- BasicCompiler64/Compile_CallProc.cpp	(revision 26)
+++ BasicCompiler64/Compile_CallProc.cpp	(revision 27)
@@ -245,5 +245,5 @@
 		if(ObjectName[0]){
 			if(lstrcmpi(ObjectName,"Super")==0){
-				//クラスメンバ関数内からスーパークラスの呼び出し
+				//クラスメンバ関数内から基底クラスの呼び出し
 				pobj_c=pobj_CompilingClass;
 			}
@@ -275,6 +275,7 @@
 		// メソッド情報を取得
 		/////////////////////////////////
-		pMethod = pobj_c->GetMethodInfo( psi );
-		if( !pMethod ){
+		pMethod = NULL;
+		if( ! bStatic ) pMethod = pobj_c->GetMethodInfo( psi );
+		if( ! pMethod ){
 			//動的メソッドが取得できなかったときは静的メソッドを当たる
 			pMethod = pobj_c->GetStaticMethodInfo( psi );
Index: BasicCompiler64/Compile_ProcOp.cpp
===================================================================
--- BasicCompiler64/Compile_ProcOp.cpp	(revision 26)
+++ BasicCompiler64/Compile_ProcOp.cpp	(revision 27)
@@ -504,6 +504,6 @@
 			pobj_CompilingClass->NotifyStartConstructorCompile();
 
-			//スーパークラスかどうかの識別
-			//（継承元がインターフェイスの場合もスーパークラスと見なす）
+			//基底クラスかどうかの識別
+			//（継承元がインターフェイスの場合も基底クラスと見なす）
 			BOOL bThisIsSuperClass;
 			if(pobj_CompilingClass->pobj_InheritsClass==0) bThisIsSuperClass=1;
@@ -516,5 +516,5 @@
 			if(!bThisIsSuperClass){
 				/* サブクラスコンストラクタをコンパイルしているときは、
-					スーパークラスのコンストラクタを呼び出す */
+					基底クラスのコンストラクタを呼び出す */
 
 				i3=cp+1;
@@ -529,5 +529,5 @@
 				if(lstrcmp(temporary,
 					pobj_CompilingClass->pobj_InheritsClass->name)==0){
-					//スーパークラスのコンストラクタを呼び出す
+					//基底クラスのコンストラクタを呼び出す
 					cp=i3;
 					for(i4=0;;cp++,i4++){
@@ -552,5 +552,5 @@
 				}
 				else{
-					//スーパークラスのコンストラクタを暗黙的に呼び出す
+					//基底クラスのコンストラクタを暗黙的に呼び出す
 					i3=pobj_CompilingClass->pobj_InheritsClass->ConstructorMemberSubIndex;
 					Opcode_CallProc("",
@@ -656,5 +656,5 @@
 			if(pobj_CompilingClass->pobj_InheritsClass){
 				/* サブクラスのデストラクタをコンパイルしているときは、
-					スーパークラスのデストラクタを呼び出す */
+					基底クラスのデストラクタを呼び出す */
 
 				i3=pobj_CompilingClass->pobj_InheritsClass->DestructorMemberSubIndex;
Index: BasicCompiler64/Compile_Set_Var.cpp
===================================================================
--- BasicCompiler64/Compile_Set_Var.cpp	(revision 26)
+++ BasicCompiler64/Compile_Set_Var.cpp	(revision 27)
@@ -77,5 +77,5 @@
 
 
-
+//TODO: 継承・派生関係にある場合は許容する
 	if(CalcType==DEF_OBJECT&&lpVarIndex==lpCalcIndex){
 		//双方のオブジェクト型が完全に一致したとき
Index: BasicCompiler64/Compile_Var.cpp
===================================================================
--- BasicCompiler64/Compile_Var.cpp	(revision 26)
+++ BasicCompiler64/Compile_Var.cpp	(revision 27)
@@ -520,17 +520,4 @@
 	}
 
-	/////////////////////
-	// グローバル変数
-	/////////////////////
-
-	for(i=MaxGlobalVarNum-1;i>=0;i--){	//レキシカルスコープを考慮してバックサーチ
-		if(GlobalVar[i].bLiving){
-			if(lstrcmp(VarName,GlobalVar[i].name)==0) break;
-		}
-	}
-	if(i>=0){
-		goto GlobalOk;
-	}
-
 
 	//////////////////////////
@@ -540,5 +527,8 @@
 	if(member[0]){
 		lstrcpy(temporary,member);
-		GetVarFormatString(temporary,array,lpPtrOffset,member,&i);
+
+		char tempMember[VN_SIZE];
+		char tempArray[VN_SIZE];
+		GetVarFormatString(temporary,tempArray,lpPtrOffset,tempMember,&i);
 
 		char temp2[VN_SIZE];
@@ -549,4 +539,6 @@
 
 		if(i!=MaxGlobalVarNum){
+			lstrcpy(member,tempMember);
+			lstrcpy(array,tempArray);
 			goto GlobalOk;
 		}
@@ -564,4 +556,18 @@
 			goto GlobalOk;
 		}
+	}
+
+
+	/////////////////////
+	// グローバル変数
+	/////////////////////
+
+	for(i=MaxGlobalVarNum-1;i>=0;i--){	//レキシカルスコープを考慮してバックサーチ
+		if(GlobalVar[i].bLiving){
+			if(lstrcmp(VarName,GlobalVar[i].name)==0) break;
+		}
+	}
+	if(i>=0){
+		goto GlobalOk;
 	}
 
