Index: JvAppStorage.pas
===================================================================
--- JvAppStorage.pas	(revision 14367)
+++ JvAppStorage.pas	(working copy)
@@ -959,6 +959,8 @@
     );
 {$ENDIF UNITVERSIONING}
 
+var DefaultAppStorage : TJvCustomAppStorage;
+
 implementation
 
 uses
@@ -1296,6 +1298,7 @@
   FReadOnly := False;
   FInternalTranslateStringEngine := TJvTranslateString.Create(Self);
   FSynchronizeFlushReload := False;
+  DefaultAppStorage:=self;
 end;
 
 destructor TJvCustomAppStorage.Destroy;
Index: JvFormPlacement.pas
===================================================================
--- JvFormPlacement.pas	(revision 14367)
+++ JvFormPlacement.pas	(working copy)
@@ -291,6 +291,10 @@
 uses
   Consts,
   JclStrings,
+{$DEFINE CreateRegAppStorageOnDemand}  // If not AppStorage is defined create a TJvAppRegistryStorage as default storage
+{$IFDEF CreateRegAppStorageOnDemand}
+  JvAppRegistryStorage,
+{$ENDIF}
   JvJCLUtils, JvPropertyStorage;
 
 const
@@ -345,6 +349,16 @@
   inherited Loaded;
   if not (csDesigning in ComponentState) then
   begin
+    if not assigned(FAppStorage) then
+    begin
+{$IFDEF CreateRegAppStorageOnDemand}
+         if not assigned(DefaultAppStorage) then
+            AppStorage:=TJvAppRegistryStorage.Create(Owner);
+{$ENDIF}
+         if assigned(DefaultAppStorage) then
+            AppStorage:=DefaultAppStorage;
+    end;
+
     ResolveAppStoragePath;
     if Loading then
       SetEvents;
