Index: BasicCompiler_Common/WatchList.cpp
===================================================================
--- BasicCompiler_Common/WatchList.cpp	(revision 76)
+++ BasicCompiler_Common/WatchList.cpp	(revision 78)
@@ -338,83 +338,87 @@
 	// ローカル変数
 	/////////////////
-	const Variable *pVar = UserProc::CompilingUserProc().localVars.Find( VarName );
-	if( pVar ){
-		//ポインタ変数の場合
-		if( pVar->IsPointer() ){
-			if( !pVar->IsArray() ){
-				lstrcpy(lpPtrOffset,array);
-				array[0]=0;
-			}
+	if( UserProc::IsLocalAreaCompiling() ){
+		const Variable *pVar = UserProc::CompilingUserProc().localVars.Find( VarName );
+
+		if( pVar ){
+			//ポインタ変数の場合
+			if( pVar->IsPointer() ){
+				if( !pVar->IsArray() ){
+					lstrcpy(lpPtrOffset,array);
+					array[0]=0;
+				}
+			}
+			else{
+				if(lpPtrOffset[0]) return 0;
+			}
+
+			pRelativeVar->offset = pVar->offset;
+			if( pVar->IsRef() ){
+				pRelativeVar->dwKind=VAR_REFLOCAL;
+			}
+			else{
+				pRelativeVar->dwKind=VAR_LOCAL;
+			}
+			resultType = *pVar;
+			isArray = pVar->IsArray();
+			pSubScripts = pVar->GetSubScriptsPtr();
+		}
+	}
+
+	if(pobj_CompilingClass){
+		///////////////////////
+		// クラスメンバの参照
+		///////////////////////
+
+		if(memicmp(variable,"This.",5)==0){
+			//Thisオブジェクトのメンバを参照するとき
+			SlideString(variable+5,-5);
+			lstrcpy(VarName,variable);
 		}
 		else{
-			if(lpPtrOffset[0]) return 0;
-		}
-
-		pRelativeVar->offset = pVar->offset;
-		if( pVar->IsRef() ){
-			pRelativeVar->dwKind=VAR_REFLOCAL;
-		}
-		else{
-			pRelativeVar->dwKind=VAR_LOCAL;
-		}
-		resultType = *pVar;
-		isArray = pVar->IsArray();
-		pSubScripts = pVar->GetSubScriptsPtr();
-	}
-	else{
-		if(pobj_CompilingClass){
-			///////////////////////
-			// クラスメンバの参照
-			///////////////////////
-
-			if(memicmp(variable,"This.",5)==0){
-				//Thisオブジェクトのメンバを参照するとき
-				SlideString(variable+5,-5);
-				lstrcpy(VarName,variable);
-			}
-			else{
-				//クラス内メンバを参照するとき（通常）
-
-				for(i=0;i<pobj_CompilingClass->iMemberNum;i++){
-					if(lstrcmp(VarName,pobj_CompilingClass->ppobj_Member[i]->name)==0) break;
-				}
-				if(i==pobj_CompilingClass->iMemberNum) goto NonClassMember;
-			}
-
-			/////////////////////////////
-			// thisポインタを取得
-
-			extern HWND hDebugWnd;
-			i2=(int)SendDlgItemMessage(hDebugWnd,IDC_PROCCOMBO,CB_GETCURSEL,0,0);
-			i2=pobj_dti->iProcLevel-i2;
-
-			lpData=Debugging_GetThisPtrOffset(pobj_dti->lplpObp[i2]);
-			if(!lpData){
-				//式エラー
-				return 0;
-			}
-			lpData+=pobj_dti->lplpSpBase[i2];
-			if(!ReadProcessMemory(hDebugProcess,(void *)lpData,&pRelativeVar->offset,sizeof(LONG_PTR),&accessBytes)){
-				//メモリにアクセスできないとき
-				return -1;
-			}
-
-			pRelativeVar->dwKind=VAR_DIRECTMEM;
-
-			i3=Debugging_GetMember(*pobj_CompilingClass,variable,pRelativeVar,resultType,1);
-			if(i3==0){
-				//式エラー
-				return 0;
-			}
-			if(i3==-1){
-				//アクセスエラー
-				return -1;
-			}
-
-			return 1;
-		}
+			//クラス内メンバを参照するとき（通常）
+
+			for(i=0;i<pobj_CompilingClass->iMemberNum;i++){
+				if(lstrcmp(VarName,pobj_CompilingClass->ppobj_Member[i]->name)==0) break;
+			}
+			if(i==pobj_CompilingClass->iMemberNum) goto NonClassMember;
+		}
+
+		/////////////////////////////
+		// thisポインタを取得
+
+		extern HWND hDebugWnd;
+		i2=(int)SendDlgItemMessage(hDebugWnd,IDC_PROCCOMBO,CB_GETCURSEL,0,0);
+		i2=pobj_dti->iProcLevel-i2;
+
+		lpData=Debugging_GetThisPtrOffset(pobj_dti->lplpObp[i2]);
+		if(!lpData){
+			//式エラー
+			return 0;
+		}
+		lpData+=pobj_dti->lplpSpBase[i2];
+		if(!ReadProcessMemory(hDebugProcess,(void *)lpData,&pRelativeVar->offset,sizeof(LONG_PTR),&accessBytes)){
+			//メモリにアクセスできないとき
+			return -1;
+		}
+
+		pRelativeVar->dwKind=VAR_DIRECTMEM;
+
+		i3=Debugging_GetMember(*pobj_CompilingClass,variable,pRelativeVar,resultType,1);
+		if(i3==0){
+			//式エラー
+			return 0;
+		}
+		if(i3==-1){
+			//アクセスエラー
+			return -1;
+		}
+
+		return 1;
+	}
 
 NonClassMember:
 
+	{
 		///////////////////
 		// グローバル変数
