Index: /trunk/Ohana/src/addstar/src/getgsc.c
===================================================================
--- /trunk/Ohana/src/addstar/src/getgsc.c	(revision 17001)
+++ /trunk/Ohana/src/addstar/src/getgsc.c	(revision 17002)
@@ -5,4 +5,5 @@
 
 static short GSC_M;
+static SkyTable *sky = NULL;
 
 Stars *getgsc (SkyRegion *patch, int *NSTARS) {
@@ -12,19 +13,12 @@
   Stars *stars;
   SkyList *skylist;
-  SkyTable *sky;
 
   NAMED_PHOTCODE (GSC_M, "GSC");
 
   /* load regions from GSC table, restrict to patch */
-  sky = SkyTableFromGSC (GSCFILE, SKY_DEPTH_HST, VERBOSE);
-  {
-    Nstars = 0;
-    ALLOCATE (stars, Stars, 1);
-    SkyTableFree (sky);
-    *NSTARS = Nstars;
-    return (stars);
+  if (!sky) {
+    sky = SkyTableFromGSC (GSCFILE, SKY_DEPTH_HST, VERBOSE);
+    SkyTableSetFilenames (sky, GSCDIR, "cpt");
   }
-
-  SkyTableSetFilenames (sky, GSCDIR, "cpt");
   skylist = SkyListByPatch (sky, -1, patch);
   
@@ -41,6 +35,8 @@
     free (gsc);
   }
+  
+  // XXX don't free because we only load it once and save it
   SkyListFree (skylist);
-  SkyTableFree (sky);
+  // SkyTableFree (sky);
 
   if (VERBOSE) fprintf (stderr, "%d stars from HST GSC\n", Nstars);
