Index: branches/eam_branches/ipp-20101205/psModules/src/objects/pmSource.c
===================================================================
--- branches/eam_branches/ipp-20101205/psModules/src/objects/pmSource.c	(revision 30138)
+++ branches/eam_branches/ipp-20101205/psModules/src/objects/pmSource.c	(revision 30139)
@@ -286,5 +286,6 @@
                             psF32 x,
                             psF32 y,
-                            psF32 Radius)
+                            psF32 Radius,
+			    bool force)
 {
     PS_ASSERT_PTR_NON_NULL(mySource, false);
@@ -300,5 +301,6 @@
     newRegion = psRegionForImage (readout->image, newRegion);
 
-    extend = false;
+    // re-define if (a) required externally (force = true) or (b) required internally
+    extend = force;
     extend |= (int)(newRegion.x0) < (int)(mySource->region.x0);
     extend |= (int)(newRegion.x1) > (int)(mySource->region.x1);
@@ -1020,12 +1022,10 @@
     }
 
-    if (!addNoise) {
-	if (add) {
-	    status = pmModelAddWithOffset (target, source->maskObj, model, PM_MODEL_OP_FULL, maskVal, dx, dy);
-	    source->tmpFlags &= ~PM_SOURCE_TMPF_SUBTRACTED;
-	} else {
-	    status = pmModelSubWithOffset (target, source->maskObj, model, PM_MODEL_OP_FULL, maskVal, dx, dy);
-	    source->tmpFlags |= PM_SOURCE_TMPF_SUBTRACTED;
-	}
+    if (add) {
+	status = pmModelAddWithOffset (target, source->maskObj, model, PM_MODEL_OP_FULL, maskVal, dx, dy);
+	source->tmpFlags &= ~PM_SOURCE_TMPF_SUBTRACTED;
+    } else {
+	status = pmModelSubWithOffset (target, source->maskObj, model, PM_MODEL_OP_FULL, maskVal, dx, dy);
+	source->tmpFlags |= PM_SOURCE_TMPF_SUBTRACTED;
     }
 
Index: branches/eam_branches/ipp-20101205/psModules/src/objects/pmSource.h
===================================================================
--- branches/eam_branches/ipp-20101205/psModules/src/objects/pmSource.h	(revision 30138)
+++ branches/eam_branches/ipp-20101205/psModules/src/objects/pmSource.h	(revision 30139)
@@ -159,5 +159,6 @@
     psF32 x,     ///< center coords of source
     psF32 y,      ///< center coords of source
-    psF32 Radius   ///< size of box on source
+    psF32 Radius,   ///< size of box on source
+    bool force	    ///< guaranteed pixels are re-assigned
 );
 
