Index: ppd.c =================================================================== --- ppd.c (revision 6579) +++ ppd.c (working copy) @@ -1022,11 +1022,15 @@ if ((option = ppdFindOption(ppd, keyword + 6)) == NULL) { + int groupidx; /* Index for current group */ ppd_group_t *gtemp; /* Temporary group */ DEBUG_printf(("%s option not found for %s...\n", keyword + 6, keyword)); + if (group) + groupidx = group - ppd->groups; /* Save index for current group */ + if ((gtemp = ppd_get_group(ppd, "General", _("General"), cg, encoding)) == NULL) { @@ -1035,6 +1039,9 @@ goto error; } + if (group) + group = ppd->groups + groupidx; /* Restore group pointer */ + if ((option = ppd_get_option(gtemp, keyword + 6)) == NULL) { DEBUG_printf(("Unable to get %s option!\n", keyword + 6)); @@ -1088,8 +1095,12 @@ if ((option = ppdFindOption(ppd, "PageRegion")) == NULL) { + int groupidx; /* Index to current group */ ppd_group_t *gtemp; /* Temporary group */ + if (group) + groupidx = group - ppd->groups; /* Save index for current group */ + if ((gtemp = ppd_get_group(ppd, "General", _("General"), cg, encoding)) == NULL) { @@ -1098,6 +1109,9 @@ goto error; } + if (group) + group = ppd->groups + groupidx; /* Restore group pointer */ + option = ppd_get_option(gtemp, "PageRegion"); }