diff --git a/pd/doc/5.reference/help-intro.pd b/pd/doc/5.reference/help-intro.pd
index 58f412f7866fae9e9d655b21666a914e85315ba2..fd54495bc76bcb17e4e7eefb13bc88db352898bb 100644
--- a/pd/doc/5.reference/help-intro.pd
+++ b/pd/doc/5.reference/help-intro.pd
@@ -1,5 +1,5 @@
 #N struct ;
-#N canvas 355 65 579 812 12;
+#N canvas 394 53 579 639 12;
 #X declare;
 #X obj 24 150 bang;
 #X text 124 150 - output a bang message;
@@ -398,7 +398,6 @@ its "help window".;
 #X text 118 3676 - make copies of a subpatch;
 #X obj 26 3676 clone;
 #X obj 157 1167 midirealtimein;
-#X obj 301 1169 midiclkin;
 #X text 124 3530 - read with a time-varying delay time;
 #X obj 97 3532 vd~;
 #X obj 26 2081 rsqrt~;
diff --git a/pd/src/m_imp.h b/pd/src/m_imp.h
index 9512a1abd87d3a0293e3d25be82f74c8b5a08674..1eb08e6192aedd84f904fbfcb71eb4e1a70c8fad 100644
--- a/pd/src/m_imp.h
+++ b/pd/src/m_imp.h
@@ -74,7 +74,6 @@ struct _pdinstance
     t_symbol *pd_bendin_sym;
     t_symbol *pd_touchin_sym;
     t_symbol *pd_polytouchin_sym;
-    t_symbol *pd_midiclkin_sym;
     t_symbol *pd_midirealtimein_sym;
 };
 
diff --git a/pd/src/m_pd.c b/pd/src/m_pd.c
index 1bf74a280d2170c7c51b4dc1b0644e3f0478beb8..0583c213c04eae1e7f5ecedc3836b9f2ccc52c08 100644
--- a/pd/src/m_pd.c
+++ b/pd/src/m_pd.c
@@ -478,7 +478,6 @@ static t_pdinstance *pdinstance_donew(int useprefix)
     x->pd_bendin_sym = midi_gensym(midiprefix, "#bendin");
     x->pd_touchin_sym = midi_gensym(midiprefix, "#touchin");
     x->pd_polytouchin_sym = midi_gensym(midiprefix, "#polytouchin");
-    x->pd_midiclkin_sym = midi_gensym(midiprefix, "#midiclkin");
     x->pd_midirealtimein_sym = midi_gensym(midiprefix, "#midirealtimein");
     return (x);
 }
diff --git a/pd/src/s_midi.c b/pd/src/s_midi.c
index 565284a360fd800d5d18974d445e0cf1a1fd1f64..289d702433ff094b913db0415de5f2dfcb29d55a 100644
--- a/pd/src/s_midi.c
+++ b/pd/src/s_midi.c
@@ -239,11 +239,6 @@ void outmidi_polyaftertouch(int portno, int channel, int pitch, int value)
         pitch, value);
 }
 
-void outmidi_mclk(int portno)
-{
-   sys_queuemidimess(portno, 1, 0xf8, 0,0);
-}
-
 void outmidi_byte(int portno, int value)
 {
 #ifdef USEAPI_ALSA
@@ -291,7 +286,6 @@ typedef struct midiparser
 
     /* functions in x_midi.c */
 void inmidi_realtimein(int portno, int cmd);
-void inmidi_clk(double timing);
 void inmidi_byte(int portno, int byte);
 void inmidi_sysex(int portno, int byte);
 void inmidi_noteon(int portno, int channel, int pitch, int velo);
@@ -316,14 +310,6 @@ static void sys_dispatchnextmidiin( void)
     if (byte >= 0xf8)
     {
         inmidi_realtimein(portno, byte);
-        if (byte == 0xf8) {
-          // AG: Not sure what the timebase for the right outlet is supposed
-          // to be. I'm using msecs right now, which is in line with the other
-          // tempo-related objects such as metro. Multiply with .001 to
-          // get seconds instead.
-          double timing = clock_gettimesince(sys_midiinittime);
-          inmidi_clk(timing);
-        }
     }
     else
     {
diff --git a/pd/src/x_midi.c b/pd/src/x_midi.c
index b98034e1b50913476d55824046649503e3ddbcbd..4926b223c2e5945b0956b3f0180ff26431e939fd 100644
--- a/pd/src/x_midi.c
+++ b/pd/src/x_midi.c
@@ -12,7 +12,6 @@ void outmidi_programchange(int portno, int channel, int value);
 void outmidi_pitchbend(int portno, int channel, int value);
 void outmidi_aftertouch(int portno, int channel, int value);
 void outmidi_polyaftertouch(int portno, int channel, int pitch, int value);
-void outmidi_mclk(int portno);
 void outmidi_byte(int portno, int value);
 
 
@@ -499,74 +498,6 @@ void inmidi_polyaftertouch(int portno, int channel, int pitch, int value)
     }
 }
 
-/*----------------------- midiclkin--(midi F8 message )---------------------*/
-
-static t_class *midiclkin_class;
-
-typedef struct _midiclkin
-{
-    t_object x_obj;
-    t_outlet *x_outlet1;
-    t_outlet *x_outlet2;
-} t_midiclkin;
-
-static void *midiclkin_new(t_floatarg f)
-{
-    t_midiclkin *x = (t_midiclkin *)pd_new(midiclkin_class);
-    x->x_outlet1 = outlet_new(&x->x_obj, &s_float);
-    x->x_outlet2 = outlet_new(&x->x_obj, &s_float);
-    pd_bind(&x->x_obj.ob_pd, pd_this->pd_midiclkin_sym);
-    return (x);
-}
-
-static void midiclkin_list(t_midiclkin *x, t_symbol *s, int argc, t_atom *argv)
-{
-    t_float value = atom_getfloatarg(0, argc, argv);
-    t_float count = atom_getfloatarg(1, argc, argv);
-    outlet_float(x->x_outlet2, count);
-    outlet_float(x->x_outlet1, value);
-}
-
-static void midiclkin_free(t_midiclkin *x)
-{
-    pd_unbind(&x->x_obj.ob_pd, pd_this->pd_midiclkin_sym);
-}
-
-static void midiclkin_setup(void)
-{
-    midiclkin_class = class_new(gensym("midiclkin"),
-        (t_newmethod)midiclkin_new, (t_method)midiclkin_free,
-            sizeof(t_midiclkin), CLASS_NOINLET, A_DEFFLOAT, 0);
-    class_addlist(midiclkin_class, midiclkin_list);
-        class_sethelpsymbol(midiclkin_class, gensym("midi"));
-}
-
-void inmidi_clk(double timing)
-{
-
-    static t_float prev = 0;
-    static t_float count = 0;
-    t_float cur,diff;
-
-    if (pd_this->pd_midiclkin_sym->s_thing)
-    {
-        t_atom at[2];
-        diff =timing - prev;
-        count++;
-
-        if (count == 3)
-        {  /* 24 count per quoter note */
-             SETFLOAT(at, 1 );
-             count = 0;
-        }
-        else SETFLOAT(at, 0);
-
-        SETFLOAT(at+1, diff);
-        pd_list(pd_this->pd_midiclkin_sym->s_thing, &s_list, 2, at);
-        prev = timing;
-    }
-}
-
 /*----------midirealtimein (midi FA,FB,FC,FF message )-----------------*/
 
 static t_class *midirealtimein_class;
@@ -1269,7 +1200,6 @@ void x_midi_setup(void)
     bendin_setup();
     touchin_setup();
     polytouchin_setup();
-    midiclkin_setup();
     midiout_setup();
     noteout_setup();
     ctlout_setup();