diff --git a/tools/element-templates/videofilter b/tools/element-templates/videofilter
index 9b07557..5bc68ba 100644
--- a/tools/element-templates/videofilter
+++ b/tools/element-templates/videofilter
@@ -12,6 +12,8 @@
 #include <gst/video/video.h>
 #include <gst/video/gstvideofilter.h>
 % prototypes
+static gboolean gst_replace_start (GstBaseTransform * trans);
+static gboolean gst_replace_stop (GstBaseTransform * trans);
 static gboolean gst_replace_set_info (GstVideoFilter * filter, GstCaps * incaps,
     GstVideoInfo * in_info, GstCaps * outcaps, GstVideoInfo * out_info);
 static GstFlowReturn gst_replace_transform_frame (GstVideoFilter * filter,
@@ -19,13 +21,36 @@
 static GstFlowReturn gst_replace_transform_frame_ip (GstVideoFilter * filter,
     GstVideoFrame * frame);
 % declare-class
+  GstBaseTransformClass *base_transform_class = GST_BASE_TRANSFORM_CLASS (klass);
   GstVideoFilterClass *video_filter_class = GST_VIDEO_FILTER_CLASS (klass);
 % set-methods
+  base_transform_class->start = GST_DEBUG_FUNCPTR (gst_replace_start);
+  base_transform_class->stop = GST_DEBUG_FUNCPTR (gst_replace_stop);
   video_filter_class->set_info = GST_DEBUG_FUNCPTR (gst_replace_set_info);
   video_filter_class->transform_frame = GST_DEBUG_FUNCPTR (gst_replace_transform_frame);
   video_filter_class->transform_frame_ip = GST_DEBUG_FUNCPTR (gst_replace_transform_frame_ip);
 % methods
 static gboolean
+gst_replace_start (GstBaseTransform * trans)
+{
+  GstReplace *replace = GST_REPLACE (trans);
+
+  GST_DEBUG_OBJECT (replace, "start");
+
+  return TRUE;
+}
+
+static gboolean
+gst_replace_stop (GstBaseTransform * trans)
+{
+  GstReplace *replace = GST_REPLACE (trans);
+
+  GST_DEBUG_OBJECT (replace, "stop");
+
+  return TRUE;
+}
+
+static gboolean
 gst_replace_set_info (GstVideoFilter * filter, GstCaps * incaps,
     GstVideoInfo * in_info, GstCaps * outcaps, GstVideoInfo * out_info)
 {
