diff --git a/src/model.cpp b/src/model.cpp
index 586f43139eaefb93f38b43032bb1731710261eed..85c469f877c3414d9aad6f2ec3b69f40da6307e2 100644
--- a/src/model.cpp
+++ b/src/model.cpp
@@ -168,18 +168,6 @@ time_type model::run(time_type tfinal, time_type dt) {
     return t_;
 }
 
-// only thread safe if called outside the run() method
-void model::add_artificial_spike(cell_member_type source) {
-    add_artificial_spike(source, t_);
-}
-
-// only thread safe if called outside the run() method
-void model::add_artificial_spike(cell_member_type source, time_type tspike) {
-    if (domain_.is_local_gid(source.gid)) {
-        current_spikes().get().push_back({source, tspike});
-    }
-}
-
 void model::attach_sampler(cell_member_type probe_id, sampler_function f, time_type tfrom) {
     const auto idx = domain_.local_group_from_gid(probe_id.gid);
 
diff --git a/src/model.hpp b/src/model.hpp
index 3d81d196e86a3b5cb6e13feec0b968b261d50503..7f93e3b9dc43620bd317aa99575045f58f3a217c 100644
--- a/src/model.hpp
+++ b/src/model.hpp
@@ -28,12 +28,6 @@ public:
 
     time_type run(time_type tfinal, time_type dt);
 
-    // only thread safe if called outside the run() method
-    void add_artificial_spike(cell_member_type source);
-
-    // only thread safe if called outside the run() method
-    void add_artificial_spike(cell_member_type source, time_type tspike);
-
     void attach_sampler(cell_member_type probe_id, sampler_function f, time_type tfrom = 0);
 
     const std::vector<probe_record>& probes() const;