Fmake_directory_internal (db_dir);
 
   db_file = Fexpand_file_name (Fsymbol_name (attribute), db_dir);
-  if (!NILP (Ffile_exists_p (db_file)))
-    {
-      ct->table = Qunloaded;
-      XCHAR_TABLE_UNLOADED(table) = 1;
-      return Qt;
-    }
-
   db = Fopen_database (db_file, Qnil, Qnil, Qnil, Qnil);
   if (!NILP (db))
     {
       else if (BYTE_TABLE_P (ct->table))
        save_byte_table (XBYTE_TABLE(ct->table), ct, db, 0, 3);
       Fclose_database (db);
-      ct->table = Qunloaded;
-      XCHAR_TABLE_UNLOADED(table) = 1;
       return Qt;
     }
   else
 #endif
 }
 
+DEFUN ("reset-char-attribute-table", Freset_char_attribute_table, 1, 1, 0, /*
+Reset values of ATTRIBUTE with database file.
+*/
+       (attribute))
+{
+#ifdef HAVE_DATABASE
+  Lisp_Object table = Fgethash (attribute,
+                               Vchar_attribute_hash_table, Qunbound);
+  Lisp_Char_Table *ct;
+  Lisp_Object db_dir = Vexec_directory;
+  Lisp_Object db_file;
+
+  if (NILP (db_dir))
+    db_dir = build_string ("../lib-src");
+  db_dir = Fexpand_file_name (build_string ("char-db"), db_dir);
+  db_dir = Fexpand_file_name (build_string ("system-char-id"), db_dir);
+  db_file = Fexpand_file_name (Fsymbol_name (attribute), db_dir);
+  if (!NILP (Ffile_exists_p (db_file)))
+    {
+      if (UNBOUNDP (table))
+       {
+         table = make_char_id_table (Qunbound);
+         Fputhash (attribute, table, Vchar_attribute_hash_table);
+         XCHAR_TABLE_NAME(table) = attribute;
+       }
+      ct = XCHAR_TABLE (table);
+      ct->table = Qunloaded;
+      XCHAR_TABLE_UNLOADED(table) = 1;
+      return Qt;
+    }
+#endif
+  return Qnil;
+}
+
 #ifdef HAVE_DATABASE
 Lisp_Object
 load_char_attribute_maybe (Emchar ch, Lisp_Object attribute)
   defsymbol (&Qput_char_table_map_function, "put-char-table-map-function");
   DEFSUBR (Fput_char_table_map_function);
   DEFSUBR (Fsave_char_attribute_table);
+  DEFSUBR (Freset_char_attribute_table);
 #ifdef HAVE_DATABASE
   defsymbol (&Qload_char_attribute_table_map_function,
             "load-char-attribute-table-map-function");