diff --git a/src/racket/src/env.c b/src/racket/src/env.c index b1103ff190..75eed050f5 100644 --- a/src/racket/src/env.c +++ b/src/racket/src/env.c @@ -2949,6 +2949,8 @@ scheme_lookup_binding(Scheme_Object *find_id, Scheme_Comp_Env *env, int flags, src_find_id = find_id; modidx = scheme_stx_module_name(NULL, &find_id, scheme_make_integer(phase), NULL, NULL, &mod_defn_phase, NULL, NULL, NULL, NULL, &rename_insp); + /* If modidx and modidx is not #, then find_id is now a + symbol, otherwise it's still an identifier. */ /* Used out of context? */ if (SAME_OBJ(modidx, scheme_undefined)) { diff --git a/src/racket/src/module.c b/src/racket/src/module.c index 34b6028bd6..e206999fd1 100644 --- a/src/racket/src/module.c +++ b/src/racket/src/module.c @@ -3800,7 +3800,8 @@ Scheme_Object *scheme_module_syntax(Scheme_Object *modname, Scheme_Env *env, Sch if (SAME_OBJ(modname, kernel_modname)) { Scheme_Env *kenv; kenv = scheme_get_kernel_env(); - name = SCHEME_STX_SYM(name); + if (SCHEME_STXP(name)) + name = SCHEME_STX_SYM(name); return scheme_lookup_in_table(kenv->syntax, (char *)name); } else if (SAME_OBJ(modname, unsafe_modname) || SAME_OBJ(modname, flfxnum_modname) @@ -3816,7 +3817,8 @@ Scheme_Object *scheme_module_syntax(Scheme_Object *modname, Scheme_Env *env, Sch if (!menv) return NULL; - name = scheme_tl_id_sym(menv, name, NULL, 0, NULL, NULL); + if (SCHEME_STXP(name)) + name = scheme_tl_id_sym(menv, name, NULL, 0, NULL, NULL); val = scheme_lookup_in_table(menv->syntax, (char *)name);