input_mode = ask_silent;
                        valid_stdin = 1;
                }
-       } else if (sym_change_count) {
+       } else if (conf_get_changed()) {
                name = getenv("KCONFIG_NOSILENTUPDATE");
                if (name && *name) {
                        fprintf(stderr, _("\n*** Kernel configuration requires explicit update.\n\n"));
 
                     use_timestamp ? "# " : "",
                     use_timestamp ? ctime(&now) : "");
 
-       if (!sym_change_count)
+       if (!conf_get_changed())
                sym_clear_all_valid();
 
        menu = rootmenu.list;
 
        return 0;
 }
+
+bool conf_get_changed(void)
+{
+       return sym_change_count;
+}
 
 P(conf_read_simple,int,(const char *name, int));
 P(conf_write,int,(const char *name));
 P(conf_write_autoconf,int,(void));
+P(conf_get_changed,bool,(void));
 
 /* menu.c */
 P(rootmenu,struct menu,);
 
        do {
                conf(&rootmenu);
                dialog_clear();
-               res = dialog_yesno(NULL,
-                                  _("Do you wish to save your "
-                                    "new kernel configuration?\n"
-                                    "<ESC><ESC> to continue."),
-                                  6, 60);
+               if (conf_get_changed())
+                       res = dialog_yesno(NULL,
+                                          _("Do you wish to save your "
+                                            "new kernel configuration?\n"
+                                            "<ESC><ESC> to continue."),
+                                          6, 60);
+               else
+                       res = -1;
        } while (res == KEY_ESC);
        end_dialog();
-       if (res == 0) {
+
+       switch (res) {
+       case 0:
                if (conf_write(NULL)) {
                        fprintf(stderr, _("\n\n"
                                "Error during writing of the kernel configuration.\n"
                                "\n\n"));
                        return 1;
                }
+       case -1:
                printf(_("\n\n"
                        "*** End of Linux kernel configuration.\n"
                        "*** Execute 'make' to build the kernel or try 'make help'."
                        "\n\n"));
-       } else {
+               break;
+       default:
                fprintf(stderr, _("\n\n"
                        "Your kernel configuration changes were NOT saved."
                        "\n\n"));
 
  */
 void ConfigMainWindow::closeEvent(QCloseEvent* e)
 {
-       if (!sym_change_count) {
+       if (!conf_get_changed()) {
                e->accept();
                return;
        }