Index: /branches/pap/psModules/src/objects/models/pmModel_GAUSS.c
===================================================================
--- /branches/pap/psModules/src/objects/models/pmModel_GAUSS.c	(revision 25562)
+++ /branches/pap/psModules/src/objects/models/pmModel_GAUSS.c	(revision 25563)
@@ -50,4 +50,6 @@
 static float *paramsMaxUse = NULL;
 static float betaUse[] = { 1000, 3e6, 5, 5, 2.0, 2.0, 0.5 };
+
+static bool limitsApply = true;         // Apply limits?
 
 // the model is a function of the pixel coordinate (pixcoord[0,1] = x,y)
@@ -91,4 +93,7 @@
 bool PM_MODEL_LIMITS (psMinConstraintMode mode, int nParam, float *params, float *beta)
 {
+    if (!limitsApply) {
+        return true;
+    }
     psAssert(nParam >= 0 && nParam <= PM_PAR_7, "Parameter index is out of bounds");
 
@@ -362,11 +367,19 @@
         paramsMinUse = NULL;
         paramsMaxUse = NULL;
+        limitsApply = true;
+        break;
+      case PM_MODEL_LIMITS_IGNORE:
+        paramsMinUse = NULL;
+        paramsMaxUse = NULL;
+        limitsApply = false;
       case PM_MODEL_LIMITS_LAX:
         paramsMinUse = paramsMinLax;
         paramsMaxUse = paramsMaxLax;
+        limitsApply = true;
         break;
       case PM_MODEL_LIMITS_STRICT:
         paramsMinUse = paramsMinStrict;
         paramsMaxUse = paramsMaxStrict;
+        limitsApply = true;
         break;
       default:
Index: /branches/pap/psModules/src/objects/models/pmModel_PGAUSS.c
===================================================================
--- /branches/pap/psModules/src/objects/models/pmModel_PGAUSS.c	(revision 25562)
+++ /branches/pap/psModules/src/objects/models/pmModel_PGAUSS.c	(revision 25563)
@@ -50,4 +50,6 @@
 static float *paramsMaxUse = NULL;
 static float betaUse[] = { 1000, 3e6, 5, 5, 2.0, 2.0, 0.5 };
+
+static bool limitsApply = true;         // Apply limits?
 
 // the model is a function of the pixel coordinate (pixcoord[0,1] = x,y)
@@ -92,4 +94,7 @@
 bool PM_MODEL_LIMITS (psMinConstraintMode mode, int nParam, float *params, float *beta)
 {
+    if (!limitsApply) {
+        return true;
+    }
     psAssert(nParam >= 0 && nParam <= PM_PAR_7, "Parameter index is out of bounds");
 
@@ -403,4 +408,5 @@
 }
 
+
 void PM_MODEL_SET_LIMITS(pmModelLimitsType type)
 {
@@ -409,11 +415,19 @@
         paramsMinUse = NULL;
         paramsMaxUse = NULL;
+        limitsApply = true;
+        break;
+      case PM_MODEL_LIMITS_IGNORE:
+        paramsMinUse = NULL;
+        paramsMaxUse = NULL;
+        limitsApply = false;
       case PM_MODEL_LIMITS_LAX:
         paramsMinUse = paramsMinLax;
         paramsMaxUse = paramsMaxLax;
+        limitsApply = true;
         break;
       case PM_MODEL_LIMITS_STRICT:
         paramsMinUse = paramsMinStrict;
         paramsMaxUse = paramsMaxStrict;
+        limitsApply = true;
         break;
       default:
Index: /branches/pap/psModules/src/objects/models/pmModel_PS1_V1.c
===================================================================
--- /branches/pap/psModules/src/objects/models/pmModel_PS1_V1.c	(revision 25562)
+++ /branches/pap/psModules/src/objects/models/pmModel_PS1_V1.c	(revision 25563)
@@ -56,4 +56,6 @@
 static float betaUse[] = { 1000, 3e6, 5, 5, 1.0, 1.0, 0.5, 2.0 };
 
+static bool limitsApply = true;         // Apply limits?
+
 
 psF32 PM_MODEL_FUNC (psVector *deriv,
@@ -109,4 +111,7 @@
 bool PM_MODEL_LIMITS (psMinConstraintMode mode, int nParam, float *params, float *beta)
 {
+    if (!limitsApply) {
+        return true;
+    }
     psAssert(nParam >= 0 && nParam <= PM_PAR_7, "Parameter index is out of bounds");
 
@@ -436,11 +441,19 @@
         paramsMinUse = NULL;
         paramsMaxUse = NULL;
+        limitsApply = true;
+        break;
+      case PM_MODEL_LIMITS_IGNORE:
+        paramsMinUse = NULL;
+        paramsMaxUse = NULL;
+        limitsApply = false;
       case PM_MODEL_LIMITS_LAX:
         paramsMinUse = paramsMinLax;
         paramsMaxUse = paramsMaxLax;
+        limitsApply = true;
         break;
       case PM_MODEL_LIMITS_STRICT:
         paramsMinUse = paramsMinStrict;
         paramsMaxUse = paramsMaxStrict;
+        limitsApply = true;
         break;
       default:
Index: /branches/pap/psModules/src/objects/models/pmModel_QGAUSS.c
===================================================================
--- /branches/pap/psModules/src/objects/models/pmModel_QGAUSS.c	(revision 25562)
+++ /branches/pap/psModules/src/objects/models/pmModel_QGAUSS.c	(revision 25563)
@@ -52,4 +52,6 @@
 static float betaUse[] = { 1000, 3e6, 5, 5, 1.0, 1.0, 0.5 };
 
+static bool limitsApply = true;         // Apply limits?
+
 psF32 PM_MODEL_FUNC (psVector *deriv,
                      const psVector *params,
@@ -105,4 +107,7 @@
 bool PM_MODEL_LIMITS (psMinConstraintMode mode, int nParam, float *params, float *beta)
 {
+    if (!limitsApply) {
+        return true;
+    }
     psAssert(nParam >= 0 && nParam <= PM_PAR_7, "Parameter index is out of bounds");
 
@@ -424,4 +429,5 @@
 }
 
+
 void PM_MODEL_SET_LIMITS(pmModelLimitsType type)
 {
@@ -430,11 +436,19 @@
         paramsMinUse = NULL;
         paramsMaxUse = NULL;
+        limitsApply = true;
+        break;
+      case PM_MODEL_LIMITS_IGNORE:
+        paramsMinUse = NULL;
+        paramsMaxUse = NULL;
+        limitsApply = false;
       case PM_MODEL_LIMITS_LAX:
         paramsMinUse = paramsMinLax;
         paramsMaxUse = paramsMaxLax;
+        limitsApply = true;
         break;
       case PM_MODEL_LIMITS_STRICT:
         paramsMinUse = paramsMinStrict;
         paramsMaxUse = paramsMaxStrict;
+        limitsApply = true;
         break;
       default:
Index: /branches/pap/psModules/src/objects/models/pmModel_RGAUSS.c
===================================================================
--- /branches/pap/psModules/src/objects/models/pmModel_RGAUSS.c	(revision 25562)
+++ /branches/pap/psModules/src/objects/models/pmModel_RGAUSS.c	(revision 25563)
@@ -52,4 +52,6 @@
 static float betaUse[] = { 1000, 3e6, 5, 5, 0.5, 0.5, 0.5, 0.5 };
 
+static bool limitsApply = true;         // Apply limits?
+
 psF32 PM_MODEL_FUNC (psVector *deriv,
                      const psVector *params,
@@ -99,4 +101,7 @@
 bool PM_MODEL_LIMITS (psMinConstraintMode mode, int nParam, float *params, float *beta)
 {
+    if (!limitsApply) {
+        return true;
+    }
     psAssert(nParam >= 0 && nParam <= PM_PAR_7, "Parameter index is out of bounds");
 
@@ -417,4 +422,5 @@
 }
 
+
 void PM_MODEL_SET_LIMITS(pmModelLimitsType type)
 {
@@ -423,11 +429,19 @@
         paramsMinUse = NULL;
         paramsMaxUse = NULL;
+        limitsApply = true;
+        break;
+      case PM_MODEL_LIMITS_IGNORE:
+        paramsMinUse = NULL;
+        paramsMaxUse = NULL;
+        limitsApply = false;
       case PM_MODEL_LIMITS_LAX:
         paramsMinUse = paramsMinLax;
         paramsMaxUse = paramsMaxLax;
+        limitsApply = true;
         break;
       case PM_MODEL_LIMITS_STRICT:
         paramsMinUse = paramsMinStrict;
         paramsMaxUse = paramsMaxStrict;
+        limitsApply = true;
         break;
       default:
Index: /branches/pap/psModules/src/objects/models/pmModel_SERSIC.c
===================================================================
--- /branches/pap/psModules/src/objects/models/pmModel_SERSIC.c	(revision 25562)
+++ /branches/pap/psModules/src/objects/models/pmModel_SERSIC.c	(revision 25563)
@@ -55,4 +55,6 @@
 static float betaUse[] = { 1000, 3e6, 5, 5, 1.0, 1.0, 0.5, 2.0 };
 
+static bool limitsApply = true;         // Apply limits?
+
 psF32 PM_MODEL_FUNC (psVector *deriv,
                      const psVector *params,
@@ -114,4 +116,7 @@
 bool PM_MODEL_LIMITS (psMinConstraintMode mode, int nParam, float *params, float *beta)
 {
+    if (!limitsApply) {
+        return true;
+    }
     psAssert(nParam >= 0 && nParam <= PM_PAR_7, "Parameter index is out of bounds");
 
@@ -410,4 +415,5 @@
 }
 
+
 void PM_MODEL_SET_LIMITS(pmModelLimitsType type)
 {
@@ -416,11 +422,19 @@
         paramsMinUse = NULL;
         paramsMaxUse = NULL;
+        limitsApply = true;
+        break;
+      case PM_MODEL_LIMITS_IGNORE:
+        paramsMinUse = NULL;
+        paramsMaxUse = NULL;
+        limitsApply = false;
       case PM_MODEL_LIMITS_LAX:
         paramsMinUse = paramsMinLax;
         paramsMaxUse = paramsMaxLax;
+        limitsApply = true;
         break;
       case PM_MODEL_LIMITS_STRICT:
         paramsMinUse = paramsMinStrict;
         paramsMaxUse = paramsMaxStrict;
+        limitsApply = true;
         break;
       default:
Index: /branches/pap/psModules/src/objects/pmModel.h
===================================================================
--- /branches/pap/psModules/src/objects/pmModel.h	(revision 25562)
+++ /branches/pap/psModules/src/objects/pmModel.h	(revision 25563)
@@ -46,5 +46,6 @@
 /// Parameter limit types
 typedef enum {
-    PM_MODEL_LIMITS_NONE,               ///< No limits: fit can go to town
+    PM_MODEL_LIMITS_NONE,               ///< Apply no limits: suitable for debugging
+    PM_MODEL_LIMITS_IGNORE,             ///< Ignore all limits: fit can go to town
     PM_MODEL_LIMITS_LAX,                ///< Lax limits: attempting to reproduce mildly bad data
     PM_MODEL_LIMITS_STRICT,             ///< Strict limits: good quality data
