Index: trunk/psastro/src/psastroAstromGuess.c
===================================================================
--- trunk/psastro/src/psastroAstromGuess.c	(revision 19594)
+++ trunk/psastro/src/psastroAstromGuess.c	(revision 19977)
@@ -247,4 +247,15 @@
     }
 
+    pmFPA *fpa = input->fpa;
+
+    psVector *cornerLo = psMetadataLookupPtr (&status, input->fpa->analysis, "CORNER.L");
+    psVector *cornerMo = psMetadataLookupPtr (&status, input->fpa->analysis, "CORNER.M");
+    psVector *cornerPo = psMetadataLookupPtr (&status, input->fpa->analysis, "CORNER.P");
+    psVector *cornerQo = psMetadataLookupPtr (&status, input->fpa->analysis, "CORNER.Q");
+    psVector *cornerRo = psMetadataLookupPtr (&status, input->fpa->analysis, "CORNER.R");
+    psVector *cornerDo = psMetadataLookupPtr (&status, input->fpa->analysis, "CORNER.D");
+
+    if (cornerLo->n < 3) return true;
+
     psVector *cornerLn = psVectorAllocEmpty (100, PS_TYPE_F32);
     psVector *cornerMn = psVectorAllocEmpty (100, PS_TYPE_F32);
@@ -253,6 +264,4 @@
     psVector *cornerRn = psVectorAllocEmpty (100, PS_TYPE_F32);
     psVector *cornerDn = psVectorAllocEmpty (100, PS_TYPE_F32);
-
-    pmFPA *fpa = input->fpa;
 
     if (DEBUG) psastroDumpCorners ("corners.up.guess3.dat", "corners.dn.guess3.dat", fpa);
@@ -282,11 +291,4 @@
 	psVectorAppend (cornerDn, ptSky.d);
     }
-
-    psVector *cornerLo = psMetadataLookupPtr (&status, input->fpa->analysis, "CORNER.L");
-    psVector *cornerMo = psMetadataLookupPtr (&status, input->fpa->analysis, "CORNER.M");
-    psVector *cornerPo = psMetadataLookupPtr (&status, input->fpa->analysis, "CORNER.P");
-    psVector *cornerQo = psMetadataLookupPtr (&status, input->fpa->analysis, "CORNER.Q");
-    psVector *cornerRo = psMetadataLookupPtr (&status, input->fpa->analysis, "CORNER.R");
-    psVector *cornerDo = psMetadataLookupPtr (&status, input->fpa->analysis, "CORNER.D");
 
     // compare the old R,D values projected to the same tangent plane as the new R,D values:
