Index: /trunk/abdev/BasicCompiler_Common/src/Class.cpp
===================================================================
--- /trunk/abdev/BasicCompiler_Common/src/Class.cpp	(revision 309)
+++ /trunk/abdev/BasicCompiler_Common/src/Class.cpp	(revision 310)
@@ -1097,4 +1097,8 @@
 	namespaceScopes.clear();
 
+	// Importsされた名前空間の管理
+	NamespaceScopesCollection backupImportedNamespaces = compiler.GetNamespaceSupporter().GetImportedNamespaces();
+	compiler.GetNamespaceSupporter().GetImportedNamespaces().clear();
+
 	// 呼び出し元でコンパイル中のクラスポインタをバックアップ
 	const CClass *pBackCompilingClass = compiler.pCompilingClass;
@@ -1126,4 +1130,24 @@
 
 			i += 2;
+			continue;
+		}
+
+		else if( basbuf[i] == 1 && basbuf[i+1] == ESC_IMPORTS ){
+			for(i+=2,i2=0;;i2++,i++){
+				if( IsCommandDelimitation( basbuf[i] ) ){
+					temporary[i2]=0;
+					break;
+				}
+				temporary[i2]=basbuf[i];
+			}
+			if( !compiler.GetNamespaceSupporter().ImportsNamespace( temporary ) )
+			{
+				SmoothieException::Throw(64,temporary,i );
+			}
+
+			continue;
+		}
+		else if( basbuf[i] == 1 && basbuf[i+1] == ESC_CLEARNAMESPACEIMPORTED ){
+			compiler.GetNamespaceSupporter().GetImportedNamespaces().clear();
 			continue;
 		}
@@ -1555,4 +1579,7 @@
 	// 名前空間を元に戻す
 	compiler.GetNamespaceSupporter().GetLivingNamespaceScopes() = backupNamespaceScopes;
+
+	// インポートされた名前空間を元に戻す
+	compiler.GetNamespaceSupporter().GetImportedNamespaces() = backupImportedNamespaces;
 }
 void Classes::GetAllClassInfo(void){
Index: /trunk/abdev/BasicCompiler_Common/src/Procedure.cpp
===================================================================
--- /trunk/abdev/BasicCompiler_Common/src/Procedure.cpp	(revision 309)
+++ /trunk/abdev/BasicCompiler_Common/src/Procedure.cpp	(revision 310)
@@ -357,5 +357,6 @@
 				while(sourceOfParams[i2]=='*') temporary[i3++]=sourceOfParams[i2++];
 				for(;;i2++,i3++){
-					if(!IsVariableChar(sourceOfParams[i2])){
+					if( IsCommandDelimitation( sourceOfParams[i2] ) )
+					{
 						temporary[i3]=0;
 						break;
