Index: trunk/pswarp/src/pswarpLoop.c
===================================================================
--- trunk/pswarp/src/pswarpLoop.c	(revision 23753)
+++ trunk/pswarp/src/pswarpLoop.c	(revision 24328)
@@ -297,4 +297,22 @@
     }
 
+    // Correct image for change in the plate scale
+    {
+        psAssert(input && input->fpa && input->fpa->toSky, "Require astrometry for input");
+        psAssert(outFPA && outFPA && outFPA->toSky, "Require astrometry for output");
+
+        double inScale = input->fpa->toSky->Xs + input->fpa->toSky->Ys; // Plate scale for input
+        double outScale = outFPA->toSky->Xs + outFPA->toSky->Ys; // Plate scale for output
+        float correction = PS_SQR(outScale / inScale); // Correction factor to apply to image
+        psLogMsg("pswarp", PS_LOG_INFO, "Correcting flux by %f to account for pixel scales", correction);
+
+        psBinaryOp(output->image, output->image, "*", psScalarAlloc(correction, PS_TYPE_F32));
+        if (output->variance) {
+            psBinaryOp(output->variance, output->variance, "*",
+                       psScalarAlloc(PS_SQR(correction), PS_TYPE_F32));
+        }
+    }
+
+
     // Set variance factor
     {
