diff --git a/InnerDetector/InDetEventCnv/InDetSimEventTPCnv/test/SiHitCollectionCnv_p3_test.cxx b/InnerDetector/InDetEventCnv/InDetSimEventTPCnv/test/SiHitCollectionCnv_p3_test.cxx
index e27245ddf191259d6b963b6d60c5b3870277e473..93107e38648d82f330a904adfbf4355fb3743ccb 100644
--- a/InnerDetector/InDetEventCnv/InDetSimEventTPCnv/test/SiHitCollectionCnv_p3_test.cxx
+++ b/InnerDetector/InDetEventCnv/InDetSimEventTPCnv/test/SiHitCollectionCnv_p3_test.cxx
@@ -33,11 +33,10 @@ void compare (const HepMcParticleLink& p1,
   assert ( p1 == p2 );
 }
 
-void compare (const SiHit& p1,
+
+void compareWithoutPos (const SiHit& p1,
               const SiHit& p2)
 {
-  assert (p1.localStartPosition() == p2.localStartPosition());
-  assert (p1.localEndPosition() == p2.localEndPosition());
   assert (p1.energyLoss() == p2.energyLoss());
   assert (p1.meanTime() == p2.meanTime());
   compare(p1.particleLink(), p2.particleLink());
@@ -46,6 +45,25 @@ void compare (const SiHit& p1,
 }
 
 
+void compare (const SiHit& p1,
+              const SiHit& p2)
+{
+  assert (p1.localStartPosition() == p2.localStartPosition());
+  assert (p1.localEndPosition() == p2.localEndPosition());
+  compareWithoutPos(p1,p2);
+}
+
+
+void compareWithoutPos (const SiHitCollection& p1,
+              const SiHitCollection& p2)
+{
+  //assert (p1.Name() == p2.Name());
+  assert (p1.size() == p2.size());
+  for (size_t i = 0; i < p1.size(); i++)
+    compareWithoutPos (p1[i], p2[i]);
+}
+
+
 void compare (const SiHitCollection& p1,
               const SiHitCollection& p2)
 {
@@ -56,6 +74,41 @@ void compare (const SiHitCollection& p1,
 }
 
 
+void compare (const SiHitCollection_p3& p1,
+              const SiHitCollection_p3& p2)
+{
+  // The number of groups of hits caused by consecutive steps of "the same particle"
+  assert ( p1.m_hit1_meanTime.size() == p2.m_hit1_meanTime.size());
+  assert ( p1.m_hit1_meanTime.size() == p2.m_hit1_meanTime.size());
+  assert ( p1.m_hit1_x0.size() == p2.m_hit1_x0.size());
+  assert ( p1.m_hit1_y0.size() == p2.m_hit1_y0.size());
+  assert ( p1.m_hit1_z0.size() == p2.m_hit1_z0.size());
+  assert ( p1.m_hit1_theta.size() == p2.m_hit1_theta.size());
+  assert ( p1.m_hit1_phi.size() == p2.m_hit1_phi.size());
+  assert ( p1.m_nHits.size() == p2.m_nHits.size());
+  //  1 element per hit
+  assert ( p1.m_hitEne_2b.size() == p2.m_hitEne_2b.size());
+  assert ( p1.m_hitLength_2b.size() == p2.m_hitLength_2b.size());
+  //  1 element per hit except for first hit in string
+  assert ( p1.m_dTheta.size() == p2.m_dTheta.size());
+  assert ( p1.m_dPhi.size() == p2.m_dPhi.size());
+  //  1 element per hit with  m_hitEne_2b[i] == 2**16
+  assert ( p1.m_hitEne_4b.size() == p2.m_hitEne_4b.size());
+  //  1 element per hit with  m_hitLength_2b[i] == 2**16
+  assert ( p1.m_hitLength_4b.size() == p2.m_hitLength_4b.size());
+  // Less than the numberOfStrings as we don't require the start/end
+  // positions of consecutive SiHits to match up in this case, so as all
+  // delta-ray hits are grouped together they get a single entry
+  //std::cout << "p1.m_barcode.size() = " << p1.m_barcode.size() << ", p2.m_barcode.size() = " << p2.m_barcode.size() << std::endl;
+  //assert ( p1.m_barcode.size() == p2.m_barcode.size());
+  //assert ( p1.m_mcEvtIndex.size() == p2.m_mcEvtIndex.size());
+  //assert ( p1.m_evtColl.size() == p2.m_evtColl.size());
+  //assert ( p1.m_nBC.size() == p2.m_nBC.size());
+  assert ( p1.m_id.size() == p2.m_id.size());
+  assert ( p1.m_nId.size() == p2.m_nId.size());
+}
+
+
 void checkPersistentVersion(const SiHitCollection_p3& pers, const SiHitCollection& trans)
 {
   constexpr int numberOfStrings{20}; // The number of groups of hits caused by consecutive steps of "the same particle"
@@ -169,6 +222,40 @@ void test1 ATLAS_NOT_THREAD_SAFE (std::vector<HepMC::GenParticlePtr>& genPartVec
   testit (trans1);
 }
 
+void persistentTest()
+{
+  MsgStream log (nullptr, "test");
+  SiHitCollectionCnv_p3 cnv;
+  SiHitCollection_p3 pers1;
+  pers1.m_hit1_meanTime = { 6.34704f, 6.35047f, 5.99725f, 6.00278f, 6.01137f, 6.01423f, 7.53231f, 7.53280f, 7.53601f, 7.53652f, 7.53677f, 7.53710f, 7.53764f, 7.53280f, 7.53360f, 7.53398f, 7.53505f, 7.53523f, 7.53561f, 7.53587f, 7.53677f, 7.53710f, 7.53728f, 7.53750f, 7.53766f, 7.53787f, 7.53805f, 7.53851f, 7.53871f, 6.33193f, 6.33538f, 6.69075f, 6.35443f, 6.35763f, 6.38697f, 6.38966f, 6.49904f, 6.50145f, 6.37501f, 6.37822f, 6.32959f, 6.33299f, 5.92833f, 5.93101f };
+  pers1.m_hit1_x0 = { -2.22576f, -2.57258f, 4.67701f, 3.52755f, 2.34020f, 2.16678f, -1.89665f, -1.91604f, -1.10751f, -1.01067f, -0.987451f, -0.961037f, -0.905318f, -1.91604f, -2.00442f, -2.03351f, -1.71213f, -1.73175f, -1.79199f, -1.82721f, -2.00042f, -2.05176f, -2.08916f, -2.14178f, -2.16220f, -2.15978f, -2.17479f, -2.15714f, -2.16289f, 3.01031f, 2.64943f, -2.94242f, 3.92093f, 3.67163f, 4.00926f, 4.07648f, 1.51180f, 1.98511f, 1.34394f, 1.10423f, 4.13133f, 3.79202f, 4.74336f, 4.79294f };
+  pers1.m_hit1_y0 = { -3.87132f, -3.95612f, -1.05869f, -2.13017f, -4.38073f, -4.62947f, 3.51055f, 3.56671f, 4.06348f, 4.10756f, 4.11605f, 4.09620f, 4.11041f, 3.56671f, 3.56372f, 3.57023f, 3.46527f, 3.44875f, 3.45378f, 3.47786f, 3.48237f, 3.43904f, 3.41345f, 3.41916f, 3.38980f, 3.34265f, 3.30474f, 3.20937f, 3.16382f, 2.24945f, 2.22388f, -2.43940f, 4.27064f, 4.36607f, 0.935116f, 0.727925f, -3.29336f, -3.13153f, -4.21768f, -4.36860f, 0.0513437f, 0.0536670f, 2.18447f, 2.02587f };
+  pers1.m_hit1_z0 = { 0.250000f, 0.250000f, -0.250000f, 0.250000f, 0.0972134f, 0.250000f, 0.250000f, 0.118243f, 0.250000f, 0.156530f, 0.0913337f, 0.00601776f, -0.132894f, 0.118243f, -0.0923615f, -0.194048f, 0.250000f, 0.205992f, 0.122075f, 0.0646511f, -0.108144f, -0.166615f, -0.176535f, -0.193754f, -0.213822f, -0.230477f, -0.210951f, -0.165086f, -0.167853f, 0.250000f, 0.250000f, -0.250000f, 0.250000f, 0.250000f, 0.250000f, 0.250000f, 0.250000f, 0.250000f, 0.250000f, 0.250000f, 0.250000f, 0.250000f, 0.250000f, 0.250000f };
+  pers1.m_hit1_theta = { 2.32229f, 2.31671f, 1.26274f, 1.63077f, 2.43192f, 2.25646f, 2.71796f, 2.37644f, 2.21704f, 2.77915f, 2.77208f, 2.74911f, 2.42038f, 2.67955f, 2.85643f, 2.89548f, 2.61391f, 2.44996f, 2.50264f, 2.39530f, 2.28699f, 1.78631f, 1.88530f, 2.08217f, 1.90992f, 1.12422f, 1.22123f, 1.63098f, 2.32601f, 2.31632f, 2.30928f, 0.472882f, 2.39047f, 2.38395f, 2.64571f, 2.60689f, 2.91657f, 2.83985f, 2.38744f, 2.39000f, 2.32889f, 2.32889f, 2.61230f, 2.71450f };
+  pers1.m_hit1_phi = { -3.02529f, -3.03644f, -2.39129f, -2.05627f, -2.73639f, -2.42850f, 1.90322f, 1.22783f, 0.511432f, 0.350519f, -0.644513f, 0.249856f, 0.379676f, -3.00715f, 2.92152f, -2.86509f, -2.44168f, 3.02701f, 2.54189f, 2.93690f, -2.44066f, -2.54145f, 3.03352f, -2.17857f, -1.51935f, -1.94799f, -1.28715f, -1.69644f, -2.24203f, -3.10503f, -3.11512f, 2.37757f, 2.98954f, 3.01115f, -2.58535f, -2.59053f, 1.21904f, 0.988734f, -2.90213f, -2.92996f, 3.13845f, 3.13846f, -2.72741f, -2.69915f };
+  pers1.m_nHits = { 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 3, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 };
+  pers1.m_hitEne_2b = { 43443, 36918, 65535, 65535, 50942, 27863, 7429, 8778, 25769, 3562, 3911, 4862, 10029, 7271, 3396, 3433, 234, 4268, 13302, 4817, 2413, 1602, 2896, 2325, 4608, 4145, 7250, 4843, 3136, 4429, 2115, 3066, 3011, 4133, 4900, 4642, 12882, 30095, 9059, 25457, 43260, 39591, 31241, 27726, 28960, 50152, 29929, 65535, 64600, 41308, 29893, 25893, 24465 };
+  pers1.m_hitLength_2b = { 65535, 65535, 65535, 65535, 45772, 59739, 14929, 14453, 51054, 7608, 6634, 6973, 9149, 15034, 6934, 7212, 838, 10073, 12822, 10597, 5769, 5094, 5224, 5144, 7154, 9717, 14889, 8906, 4639, 5566, 4101, 5007, 4521, 5656, 5174, 4599, 3756, 65535, 20873, 53316, 25884, 65535, 65535, 56847, 58111, 51293, 52366, 65535, 65535, 65535, 65535, 57926, 54935 };
+  pers1.m_dTheta =  { 59549, 48281, 41665, 43515, 43958, 46284, 25283, 13967, 32916 };
+  pers1.m_dPhi = { 39630, 13239, 23234, 40681, 12440, 39723, 61408, 10671, 32496 };
+  pers1.m_hitEne_4b = { 0.820985f, 1.33424f, 0.717816f };
+  pers1.m_hitLength_4b = { 0.732353f, 0.736768f, 1.64904f, 2.54915f, 0.737079f, 0.684066f, 0.688273f, 0.686010f, 0.684366f, 0.727235f, 0.727228f };
+  pers1.m_barcode = { 0, 4, 0 };
+  pers1.m_mcEvtIndex = { 0, 0, 0 };
+  pers1.m_evtColl = { 'a', 'a', 'a' };
+  pers1.m_nBC = { 49, 2, 2 };
+  pers1.m_id = { 218152, 217128, 218248, 217224, 218312, 217288, 16995528, 16994504, 218184, 217160, 218152, 218216, 217192, 218184, 217160, 218216, 217192, 218184, 217160, 87048, 86024, 218344, 217320 };
+  pers1.m_nId = { 1, 1, 3, 2, 2, 8, 4, 16, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 };
+
+  SiHitCollection trans1;
+  cnv.persToTrans (&pers1, &trans1, log);
+  SiHitCollection_p3 pers2;
+  cnv.transToPers (&trans1, &pers2, log);
+  compare (pers1, pers2);
+  SiHitCollection trans2;
+  cnv.persToTrans (&pers2, &trans2, log);
+  compareWithoutPos (trans1, trans2);
+}
 
 int main ATLAS_NOT_THREAD_SAFE ()
 {
@@ -180,5 +267,6 @@ int main ATLAS_NOT_THREAD_SAFE ()
   }
 
   test1(genPartVector);
+  persistentTest();
   return 0;
 }