diff --git a/circle/dashboard/static/dashboard/vm-common.js b/circle/dashboard/static/dashboard/vm-common.js
index 00e6b9a..677be8d 100644
--- a/circle/dashboard/static/dashboard/vm-common.js
+++ b/circle/dashboard/static/dashboard/vm-common.js
@@ -43,10 +43,10 @@ $(function() {
       success: function(data, textStatus, xhr) {
         $('#confirmation-modal').modal("hide");
 
-        if(data.redirect) {
+        if(data.success) {
           $('a[href="#activity"]').trigger("click");
 
-          if(data.messages.length > 0) {
+          if(data.messages && data.messages.length > 0) {
             addMessage(data.messages.join("<br />"), "danger");
           }
         }
diff --git a/circle/dashboard/static/dashboard/vm-details.js b/circle/dashboard/static/dashboard/vm-details.js
index 89b0e96..1dde2d4 100644
--- a/circle/dashboard/static/dashboard/vm-details.js
+++ b/circle/dashboard/static/dashboard/vm-details.js
@@ -341,6 +341,7 @@ function checkNewActivity(only_status, runs) {
       if(!only_status) {
         $("#activity-timeline").html(data['activities']);
         $("#ops").html(data['ops']);
+        $("#disk-ops").html(data['disk_ops']);
         $("[title]").tooltip();
       }
 
diff --git a/circle/dashboard/templates/dashboard/vm-detail/_disk-operations.html b/circle/dashboard/templates/dashboard/vm-detail/_disk-operations.html
new file mode 100644
index 0000000..a803173
--- /dev/null
+++ b/circle/dashboard/templates/dashboard/vm-detail/_disk-operations.html
@@ -0,0 +1,10 @@
+{% load i18n %}
+
+{% for op in ops %}
+{% if op.is_disk_operation %}
+    <a href="{{op.get_url}}" class="btn btn-success btn-xs
+            operation operation-{{op.op}} btn btn-default">
+      <i class="icon-{{op.icon}}"></i>
+            {{op.name}} </a>
+{% endif %}
+{% endfor %}
diff --git a/circle/dashboard/templates/dashboard/vm-detail/resources.html b/circle/dashboard/templates/dashboard/vm-detail/resources.html
index 39b77f6..6e8fbca 100644
--- a/circle/dashboard/templates/dashboard/vm-detail/resources.html
+++ b/circle/dashboard/templates/dashboard/vm-detail/resources.html
@@ -47,18 +47,9 @@
     <h3>
       {% trans "Disks" %}
       <div class="pull-right">
-        {% if op.download_disk %}
-	<a href="{{op.download_disk.get_url}}" class="btn btn-success btn-xs
-		operation operation-{{op.download_disk.op}} btn btn-default">
-	  <i class="icon-{{op.download_disk.icon}}"></i>
-		{{op.download_disk.name}} </a>
-	{% endif %}
-        {% if op.create_disk %}
-	<a href="{{op.create_disk.get_url}}" class="btn btn-success btn-xs
-		operation operation-{{op.create_disk.op}} btn btn-default">
-	  <i class="icon-{{op.create_disk.icon}}"></i>
-		{{op.create_disk.name}} </a>
-	{% endif %}
+        <div id="disk-ops">
+          {% include "dashboard/vm-detail/_disk-operations.html" %}
+        </div> 
       </div>
     </h3>
 
diff --git a/circle/dashboard/views.py b/circle/dashboard/views.py
index bcc29eb..ac2b223 100644
--- a/circle/dashboard/views.py
+++ b/circle/dashboard/views.py
@@ -579,7 +579,7 @@ class VmOperationView(OperationView):
             store = messages.get_messages(request)
             store.used = True
             return HttpResponse(
-                json.dumps({'redirect': resp.url,
+                json.dumps({'success': True,
                             'messages': [unicode(m) for m in store]}),
                 content_type="application=json"
             )
@@ -609,7 +609,7 @@ class FormOperationMixin(object):
                 request, extra, *args, **kwargs)
             if request.is_ajax():
                 return HttpResponse(
-                    json.dumps({'redirect': resp.url}),
+                    json.dumps({'success': True}),
                     content_type="application=json"
                 )
             else:
@@ -624,6 +624,7 @@ class VmCreateDiskView(FormOperationMixin, VmOperationView):
     form_class = VmCreateDiskForm
     show_in_toolbar = False
     icon = 'hdd'
+    is_disk_operation = True
 
 
 class VmDownloadDiskView(FormOperationMixin, VmOperationView):
@@ -632,6 +633,7 @@ class VmDownloadDiskView(FormOperationMixin, VmOperationView):
     form_class = VmDownloadDiskForm
     show_in_toolbar = False
     icon = 'download'
+    is_disk_operation = True
 
 
 class VmMigrateView(VmOperationView):
@@ -2135,6 +2137,10 @@ def vm_activity(request, pk):
             "dashboard/vm-detail/_operations.html",
             RequestContext(request, context),
         )
+        response['disk_ops'] = render_to_string(
+            "dashboard/vm-detail/_disk-operations.html",
+            RequestContext(request, context),
+        )
 
     return HttpResponse(
         json.dumps(response),