diff --git a/arbor/backends/gpu/shared_state.cpp b/arbor/backends/gpu/shared_state.cpp
index 6b8d26e35b6b5487a0fe7d950c1274c48938b680..93489f1ae1fd7d8eeb6599ad6e164dd482d387a5 100644
--- a/arbor/backends/gpu/shared_state.cpp
+++ b/arbor/backends/gpu/shared_state.cpp
@@ -192,7 +192,7 @@ std::ostream& operator<<(std::ostream& o, shared_state& s) {
     o << " conductivity " << s.conductivity << "\n";
     for (auto& ki: s.ion_data) {
         auto& kn = ki.first;
-        auto& i = const_cast<ion_state&>(ki.second);
+        auto& i = ki.second;
         o << " " << kn << "/current_density        " << i.iX_ << "\n";
         o << " " << kn << "/reversal_potential     " << i.eX_ << "\n";
         o << " " << kn << "/internal_concentration " << i.Xi_ << "\n";
diff --git a/arbor/backends/multicore/shared_state.cpp b/arbor/backends/multicore/shared_state.cpp
index 8749ac6950a1eff51b938f0d68fded24d1aa5c7f..dfdc70b1e3593d593879b5a51737645f15383ae8 100644
--- a/arbor/backends/multicore/shared_state.cpp
+++ b/arbor/backends/multicore/shared_state.cpp
@@ -258,7 +258,7 @@ std::ostream& operator<<(std::ostream& out, const shared_state& s) {
     out << "conductivity " << csv(s.conductivity) << "\n";
     for (const auto& ki: s.ion_data) {
         auto& kn = ki.first;
-        auto& i = const_cast<ion_state&>(ki.second);
+        auto& i = ki.second;
         out << kn << "/current_density        " << csv(i.iX_) << "\n";
         out << kn << "/reversal_potential     " << csv(i.eX_) << "\n";
         out << kn << "/internal_concentration " << csv(i.Xi_) << "\n";