diff --git a/docs/release/release_notes.md b/docs/release/release_notes.md
index 472c68f473fc85352aa9f0773d345f016445b746..b02993497d92c8e5151c1b620a4e0771cefce971 100644
--- a/docs/release/release_notes.md
+++ b/docs/release/release_notes.md
@@ -8,7 +8,9 @@ Note that when you upgrade you may end up with duplicate webhooks in Stripe with
 * Fix Stripe create customer in test mode.
 * Fix offline (live) event payments for Wordpress.
 * If payment fails and we have no contribution don't crash when trying to create a note.
-* Fix null dates returning as December 31, 1969.
+* Fix null dates returning as December 31, 1969 or 1 Jan 1970 (depending on your
+    timezone) - also see the commandline script in `utils/fix-issue-44.php` to
+    correct your Contributions data.
 
 * Support Drupal 8 Webform.
 * Automatically manage and create webhooks.
@@ -89,4 +91,4 @@ Make sure you run the extension upgrades immediately after updating the code.  T
 ### Highlights:
 * Fix all known "Stripe.js token was not passed".
 * Tested support for Drupal 7 / Wordpress / Joomla for contributions/event payments.
-* Improvements to recurring payments (though you will want to upgrade to 5.2 if using recurring payments as recurring payments has had a major rewrite for 5.2).
\ No newline at end of file
+* Improvements to recurring payments (though you will want to upgrade to 5.2 if using recurring payments as recurring payments has had a major rewrite for 5.2).
diff --git a/utils/fix-issue-44.php b/utils/fix-issue-44.php
new file mode 100644
index 0000000000000000000000000000000000000000..53c127f73822a5de7e443f38e9f7c87eb1dd5972
--- /dev/null
+++ b/utils/fix-issue-44.php
@@ -0,0 +1,76 @@
+<?php
+/**
+ * This script will look for stripe recurring contributions with a date <2 Jan
+ * 1970 and will try to obtain a proper charge date for them and correct the
+ * Contribution records.
+ *
+ * Drupal users can run it like
+ *    drush scr <scriptname>
+ *
+ * Limitations: it does not correct the financial records. There be dragons.
+ *
+ * You should have a read through the code and determine if it's what you want
+ * before running it.
+ *
+ * @see https://lab.civicrm.org/extensions/stripe/issues/63
+ *
+ */
+use Stripe\Stripe;
+use Stripe\Charge;
+
+exit; // ***REMOVE THIS LINE*** but don't run this until you have understood what it does.
+
+if (php_sapi_name() !== 'cli') {
+  // This is NOT to be run from a web browser.
+  // Fail with 404 if not called from CLI.
+  if (isset($_SERVER['HTTP_PROTOCOL'])) {
+    header("$_SERVER[HTTP_PROTOCOL] 404 Not Found");
+  }
+  exit;
+}
+
+civicrm_initialize();
+echo "booted ok\n";
+
+$result = civicrm_api3('PaymentProcessor', 'get', [ 'class_name' => 'Payment_Stripe', 'is_active' => 1, ]);
+$payment_processors = $result['values'];
+if (empty($payment_processors)) {
+  echo "Failed to find payment processors\n";
+  exit;
+}
+
+$dao = CRM_Core_DAO::executeQuery('
+  SELECT c.id, c.contact_id, c.total_amount, c.trxn_id, c.contribution_recur_id, cr.payment_processor_id
+  FROM civicrm_contribution c
+    INNER JOIN civicrm_contribution_recur cr ON c.contribution_recur_id = cr.id
+  WHERE c.contribution_status_id = 1 AND c.is_test = 0 AND c.receive_date < 19700102');
+while ($dao->fetch()) {
+  echo "Contribution $dao->id (contact $dao->contact_id): ";
+
+  $paymentProcessor = $payment_processors[$dao->payment_processor_id] ?? NULL;
+  if (!$paymentProcessor) {
+    echo "Failed to find a stripe payment processor for recurring contrib $dao->contribution_recur_id\n";
+  }
+  Stripe::setApiKey(CRM_Core_Payment_Stripe::getSecretKey($paymentProcessor));
+
+  try {
+    $results = Charge::retrieve(['id' => $dao->trxn_id]);
+    //print json_encode($results, JSON_PRETTY_PRINT);
+    if (empty($results->created)) {
+      echo " Failed to retrieve a charge created date\n";
+      continue;
+    }
+    $d = date('Y-m-d H:i:s', $results->created);
+    // Update database
+    print "Updating Contribution to date $d\n";
+    civicrm_api3('Contribution', 'create', [
+      'id' => $dao->id,
+      'receive_date' => $d,
+    ]);
+
+  } catch (Exception $e) {
+    echo "Failed to load Stripe charge $dao->trxn_id \n" . $e->getMessage();
+    continue;
+  }
+}
+echo "Done\n";