Make sure to save the registry files even if we failed to load them.

diff --git a/server/registry.c b/server/registry.c
index 115494a..7796e59 100644
--- a/server/registry.c
+++ b/server/registry.c
@@ -1416,13 +1416,15 @@
 {
     FILE *f;
 
-    if (!(f = fopen( filename, "r" ))) return;
-    load_keys( key, f, 0 );
-    fclose( f );
-    if (get_error() == STATUS_NOT_REGISTRY_FILE)
-        fatal_error( "%s is not a valid registry file\n", filename );
-    if (get_error())
-        fatal_error( "loading %s failed with error %x\n", filename, get_error() );
+    if ((f = fopen( filename, "r" )))
+    {
+        load_keys( key, f, 0 );
+        fclose( f );
+        if (get_error() == STATUS_NOT_REGISTRY_FILE)
+            fatal_error( "%s is not a valid registry file\n", filename );
+        if (get_error())
+            fatal_error( "loading %s failed with error %x\n", filename, get_error() );
+    }
 
     if (!(key->flags & KEY_VOLATILE))
     {