int init)
 {
        union jump_code_union code;
+       const unsigned char default_nop[] = { STATIC_KEY_INIT_NOP };
        const unsigned char *ideal_nop = ideal_nops[NOP_ATOMIC5];
 
        if (type == JUMP_LABEL_ENABLE) {
-               /*
-                * We are enabling this jump label. If it is not a nop
-                * then something must have gone wrong.
-                */
-               if (unlikely(memcmp((void *)entry->code, ideal_nop, 5) != 0))
-                       bug_at((void *)entry->code, __LINE__);
+               if (init) {
+                       /*
+                        * Jump label is enabled for the first time.
+                        * So we expect a default_nop...
+                        */
+                       if (unlikely(memcmp((void *)entry->code, default_nop, 5)
+                                    != 0))
+                               bug_at((void *)entry->code, __LINE__);
+               } else {
+                       /*
+                        * ...otherwise expect an ideal_nop. Otherwise
+                        * something went horribly wrong.
+                        */
+                       if (unlikely(memcmp((void *)entry->code, ideal_nop, 5)
+                                    != 0))
+                               bug_at((void *)entry->code, __LINE__);
+               }
 
                code.jump = 0xe9;
                code.offset = entry->target -
                 * are converting the default nop to the ideal nop.
                 */
                if (init) {
-                       const unsigned char default_nop[] = { STATIC_KEY_INIT_NOP };
                        if (unlikely(memcmp((void *)entry->code, default_nop, 5) != 0))
                                bug_at((void *)entry->code, __LINE__);
                } else {