diff --git a/python/lsst/pipe/tasks/assembleCoadd.py b/python/lsst/pipe/tasks/assembleCoadd.py
index 143e4267e..1292298a2 100755
--- a/python/lsst/pipe/tasks/assembleCoadd.py
+++ b/python/lsst/pipe/tasks/assembleCoadd.py
@@ -164,9 +164,19 @@ class AssembleCoaddConfig(CoaddBaseTask.ConfigClass, pipeBase.PipelineTaskConfig
             "Passed to StatisticsControl.setCalcErrorFromInputVariance()",
         default=True,
     )
+    doScaleZeroPoint = pexConfig.Field(
+        dtype=bool,
+        default=False,
+        doc="Run ScaleZeroPointTask to adjust the photometric zero point of the coadd warps.",
+        deprecated=("This task exists to manage the removal of the scaleZeroPoint config below."
+                    "This will be removed after v19.")
+    )
     scaleZeroPoint = pexConfig.ConfigurableField(
         target=ScaleZeroPointTask,
-        doc="Task to adjust the photometric zero point of the coadd temp exposures",
+        doc="Task to adjust the photometric zero point of the coadd warps.",
+        deprecated=("PhotoCalib calibrates images to nJy, keeping them in the same units."
+                    " See RFC-545 for the deprecation discussion."
+                    " This will be removed after v19.")
     )
     doInterp = pexConfig.Field(
         doc="Interpolate over NaN pixels? Also extrapolate, if necessary, but the results are ugly.",
@@ -374,7 +384,10 @@ def __init__(self, *args, **kwargs):
 
         super().__init__(**kwargs)
         self.makeSubtask("interpImage")
-        self.makeSubtask("scaleZeroPoint")
+        if self.config.doScaleZeroPoint:
+            self.makeSubtask("scaleZeroPoint")
+        else:
+            self.scaleZeroPoint = None
 
         if self.config.doMaskBrightObjects:
             mask = afwImage.Mask()
@@ -649,15 +662,18 @@ def prepareInputs(self, refList):
             if numpy.isnan(tempExp.image.array).all():
                 continue
             maskedImage = tempExp.getMaskedImage()
-            imageScaler = self.scaleZeroPoint.computeImageScaler(
-                exposure=tempExp,
-                dataRef=tempExpRef,
-            )
-            try:
-                imageScaler.scaleMaskedImage(maskedImage)
-            except Exception as e:
-                self.log.warn("Scaling failed for %s (skipping it): %s", tempExpRef.dataId, e)
-                continue
+
+            if self.scaleZeroPoint is not None:
+                imageScaler = self.scaleZeroPoint.computeImageScaler(
+                    exposure=tempExp,
+                    dataRef=tempExpRef,
+                )
+                try:
+                    imageScaler.scaleMaskedImage(maskedImage)
+                except Exception as e:
+                    self.log.warn("Scaling failed for %s (skipping it): %s", tempExpRef.dataId, e)
+                    continue
+
             statObj = afwMath.makeStatistics(maskedImage.getVariance(), maskedImage.getMask(),
                                              afwMath.MEANCLIP, statsCtrl)
             meanVar, meanVarErr = statObj.getResult(afwMath.MEANCLIP)
@@ -672,7 +688,10 @@ def prepareInputs(self, refList):
 
             tempExpRefList.append(tempExpRef)
             weightList.append(weight)
-            imageScalerList.append(imageScaler)
+            if self.scaleZeroPoint is not None:
+                imageScalerList.append(imageScaler)
+            else:
+                imageScalerList.append(None)
 
         return pipeBase.Struct(tempExpRefList=tempExpRefList, weightList=weightList,
                                imageScalerList=imageScalerList)
@@ -763,7 +782,11 @@ def run(self, skyInfo, tempExpRefList, imageScalerList, weightList,
             altMaskList = [None]*len(tempExpRefList)
 
         coaddExposure = afwImage.ExposureF(skyInfo.bbox, skyInfo.wcs)
-        coaddExposure.setPhotoCalib(self.scaleZeroPoint.getPhotoCalib())
+        if self.scaleZeroPoint is None:
+            # The coadd is in nJy, and we do not propogate errors from the warps.
+            coaddExposure.setPhotoCalib(afwImage.PhotoCalib(1.0, 0.0))
+        else:
+            coaddExposure.setPhotoCalib(self.scaleZeroPoint.getPhotoCalib())
         coaddExposure.getInfo().setCoaddInputs(self.inputRecorder.makeCoaddInputs())
         self.assembleMetadata(coaddExposure, tempExpRefList, weightList)
         coaddMaskedImage = coaddExposure.getMaskedImage()
@@ -910,7 +933,8 @@ def assembleSubregion(self, coaddExposure, bbox, tempExpRefList, imageScalerList
             mask = maskedImage.getMask()
             if altMask is not None:
                 self.applyAltMaskPlanes(mask, altMask)
-            imageScaler.scaleMaskedImage(maskedImage)
+            if imageScaler is not None:
+                imageScaler.scaleMaskedImage(maskedImage)
 
             # Add 1 for each pixel which is not excluded by the exclude mask.
             # In legacyCoadd, pixels may also be excluded by afwMath.statisticsStack.
@@ -2359,7 +2383,8 @@ def _readAndComputeWarpDiff(self, warpRef, imageScaler, templateCoadd):
                 return None
         warp = warpRef.get(datasetType=warpName, immediate=True)
         # direct image scaler OK for PSF-matched Warp
-        imageScaler.scaleMaskedImage(warp.getMaskedImage())
+        if imageScaler is not None:
+            imageScaler.scaleMaskedImage(warp.getMaskedImage())
         mi = warp.getMaskedImage()
         if self.config.doScaleWarpVariance:
             try: