Index: compilers/imcc/imcc.l
===================================================================
--- compilers/imcc/imcc.l	(revision 21622)
+++ compilers/imcc/imcc.l	(working copy)
@@ -603,6 +603,25 @@
     return LABEL;
     }
 
+<macro>".label"{WS}+ {
+    char *label;
+
+    if (yylex(valp, yyscanner, interp) != LABEL)
+            IMCC_fataly(interp, E_SyntaxError, "LABEL expected");
+
+    if (valp) {
+        YYCHOP();
+
+        label = (char*)mem_sys_allocate(strlen(IMCC_INFO(interp)->cur_macro_name) + yyleng + 15);
+        sprintf(label, "label__%s__%s__$:", IMCC_INFO(interp)->cur_macro_name, yytext+1);
+
+        valp->s = label;
+    }
+
+    return LABEL;
+    }
+    
+    
 <macro>".$"{ID} {
     char *label;
 
