diff --git a/beat/web/backend/templates/backend/scheduler.html b/beat/web/backend/templates/backend/scheduler.html
index dbcedb9989cbbdbe7aa5f4abb4f90d91a184c042..14ff20fcf0a7297987e3bb2ea9940ee074e160a5 100644
--- a/beat/web/backend/templates/backend/scheduler.html
+++ b/beat/web/backend/templates/backend/scheduler.html
@@ -39,6 +39,7 @@
     <div class="alert alert-success" role="alert" style="text-align: center;">
       <i class="fa fa-clock-o fa-2x vertical-center"></i> Updated: {% now "H:i O, jS F Y" %}
       <div class="pull-right action-buttons">
+        <a id="update-workers-button" class="btn btn-default btn-info" data-toggle="tooltip" data-placement="bottom" title="Force all workers to update their state" href="{% url 'backend:update-workers' %}"><i class="fa fa-times"></i> Update Workers</a>
         <a id="cancel-experiments-button" class="btn btn-default btn-delete" data-toggle="tooltip" data-placement="bottom" title="Cancel all running experiments" href="{% url 'backend:cancel-experiments' %}"><i class="fa fa-times"></i> Cancel Experiments</a>
       </div>
     </div>
diff --git a/beat/web/backend/urls.py b/beat/web/backend/urls.py
index 33c58bc66f3b8695e3d2ac437825667a95a5e066..e09f3f99036173ff494088275ccd84a8a297e8a2 100644
--- a/beat/web/backend/urls.py
+++ b/beat/web/backend/urls.py
@@ -42,6 +42,12 @@ urlpatterns = [
       name='cancel-experiments',
       ),
 
+    url(
+      r'^update-workers/$',
+      views.update_workers,
+      name='update-workers',
+      ),
+
     url(
         r'^environments/(?P<name>[-\.\w\s]+)/(?P<version>[-\.\w]+)/$',
         views.environment,
diff --git a/beat/web/backend/views.py b/beat/web/backend/views.py
index 0e408d3937ac0846da6726aefe4154c8cd4fe4de..8c51ca58d0e21ce5c80a375b78152828e2b6ac9e 100644
--- a/beat/web/backend/views.py
+++ b/beat/web/backend/views.py
@@ -78,6 +78,7 @@ def scheduler(request):
                 queues=Queue.objects.order_by('memory_limit', 'max_slots_per_user'),
                 cache_chart_data=simplejson.dumps(cache_chart_data),
                 cache_gb=cache_gb,
+                helper_panel=getattr(settings, 'SCHEDULING_PANEL', False),
                 ),
             context_instance=RequestContext(request))
 
@@ -129,7 +130,28 @@ def cancel_all_experiments(request):
 
     if not(request.user.is_superuser): return HttpResponseForbidden()
 
-    for q in Experiment.objects.filter(status__in=(Experiment.RUNNING, Experiment.SCHEDULED)):
-        q.cancel()
+    qs = Experiment.objects.filter(status__in=(Experiment.RUNNING, Experiment.SCHEDULED))
+    counter = qs.count()
+
+    for xp in qs: xp.cancel()
+
+    messages.success(request, "Successfuly cancelled %d experiments" % counter)
+
+    return HttpResponseRedirect(reverse('backend:scheduler'))
+
+
+#----------------------------------------------------------
+
+
+@login_required
+def update_workers(request):
+
+    if not(request.user.is_superuser): return HttpResponseForbidden()
+
+    qs = Worker.objects.all()
+    counter = qs.count()
+    qs.update(update=True)
+
+    messages.success(request, "Requested %d workers for updates" % counter)
 
     return HttpResponseRedirect(reverse('backend:scheduler'))