diff --git a/modules/parsers/nasm/nasm-parse.c b/modules/parsers/nasm/nasm-parse.c
index 0e80b58..6ec14fd 100644
--- a/modules/parsers/nasm/nasm-parse.c
+++ b/modules/parsers/nasm/nasm-parse.c
@@ -62,8 +62,9 @@
     (yasm_parser_nasm *parser_nasm, const char *name,
      /*@null@*/ yasm_valparamhead *valparams,
      /*@null@*/ yasm_valparamhead *objext_valparams);
+static void set_nonlocal_label(yasm_parser_nasm *parser_nasm, const char *name);
 static void define_label(yasm_parser_nasm *parser_nasm, /*@only@*/ char *name,
-                         unsigned int size, int local);
+                         unsigned int size);
 
 static void yasm_ea_set_implicit_size_segment(yasm_parser_nasm *parser_nasm,
                                               yasm_effaddr *ea, yasm_expr *e)
@@ -384,7 +385,9 @@
                 /* label alone on the line */
                 yasm_warn_set(YASM_WARN_ORPHAN_LABEL,
                     N_("label alone on a line without a colon might be in error"));
-                define_label(parser_nasm, name, 0, local);
+                if (!local)
+                    set_nonlocal_label(parser_nasm, name);
+                define_label(parser_nasm, name, 0);
                 return NULL;
             }
             if (curtok == ':')
@@ -420,12 +423,15 @@
                 get_next_token();
             }
 
+            if (!local)
+                set_nonlocal_label(parser_nasm, name);
+
             if (is_eol()) {
-                define_label(parser_nasm, name, size, local);
+                define_label(parser_nasm, name, size);
                 return NULL;
             }
             if (curtok == TIMES) {
-                define_label(parser_nasm, name, size, local);
+                define_label(parser_nasm, name, size);
                 get_next_token();
                 return parse_times(parser_nasm);
             }
@@ -435,7 +441,7 @@
                                N_("instruction expected after label"));
             if (parser_nasm->tasm && bc && !size)
                 size = yasm_bc_elem_size(bc);
-            define_label(parser_nasm, name, size, local);
+            define_label(parser_nasm, name, size);
             return bc;
         }
         default:
@@ -1439,12 +1445,9 @@
 }
 
 static void
-define_label(yasm_parser_nasm *parser_nasm, char *name, unsigned int size,
-             int local)
+set_nonlocal_label(yasm_parser_nasm *parser_nasm, const char *name)
 {
-    yasm_symrec *symrec;
-
-    if ((!parser_nasm->tasm || tasm_locals) && !local) {
+    if (!parser_nasm->tasm || tasm_locals) {
         if (parser_nasm->locallabel_base)
             yasm_xfree(parser_nasm->locallabel_base);
         parser_nasm->locallabel_base_len = strlen(name);
@@ -1452,6 +1455,12 @@
             yasm_xmalloc(parser_nasm->locallabel_base_len+1);
         strcpy(parser_nasm->locallabel_base, name);
     }
+}
+
+static void
+define_label(yasm_parser_nasm *parser_nasm, char *name, unsigned int size)
+{
+    yasm_symrec *symrec;
 
     if (parser_nasm->abspos)
         symrec = yasm_symtab_define_equ(p_symtab, name,
diff --git a/modules/parsers/nasm/tests/Makefile.inc b/modules/parsers/nasm/tests/Makefile.inc
index f4589c3..9a1d5db 100644
--- a/modules/parsers/nasm/tests/Makefile.inc
+++ b/modules/parsers/nasm/tests/Makefile.inc
@@ -23,6 +23,8 @@
 EXTRA_DIST += modules/parsers/nasm/tests/long.hex
 EXTRA_DIST += modules/parsers/nasm/tests/locallabel.asm
 EXTRA_DIST += modules/parsers/nasm/tests/locallabel.hex
+EXTRA_DIST += modules/parsers/nasm/tests/locallabel2.asm
+EXTRA_DIST += modules/parsers/nasm/tests/locallabel2.hex
 EXTRA_DIST += modules/parsers/nasm/tests/nasm-prefix.asm
 EXTRA_DIST += modules/parsers/nasm/tests/nasm-prefix.hex
 EXTRA_DIST += modules/parsers/nasm/tests/newsect.asm
diff --git a/modules/parsers/nasm/tests/locallabel2.asm b/modules/parsers/nasm/tests/locallabel2.asm
new file mode 100644
index 0000000..ea0f8c9
--- /dev/null
+++ b/modules/parsers/nasm/tests/locallabel2.asm
@@ -0,0 +1,4 @@
+nl1:
+nl2:db      .0 - nl2
+.0: db      .1 - nl2
+.1:
diff --git a/modules/parsers/nasm/tests/locallabel2.hex b/modules/parsers/nasm/tests/locallabel2.hex
new file mode 100644
index 0000000..2633481
--- /dev/null
+++ b/modules/parsers/nasm/tests/locallabel2.hex
@@ -0,0 +1,2 @@
+01 
+02 
