diff --git a/include/ajax.orgs.php b/include/ajax.orgs.php
index 3b187b18d8c5256cd9183dd986ad5239f52097d9..7737f57c11fd6780efc82602379a4734f8dc88a9 100644
--- a/include/ajax.orgs.php
+++ b/include/ajax.orgs.php
@@ -252,5 +252,48 @@ class OrgsAjaxAPI extends AjaxController {
 
         return $resp;
     }
+
+    function manageForms($org_id) {
+        $forms = DynamicFormEntry::forOrganization($org_id);
+        $info = array('action' => '#orgs/'.Format::htmlchars($org_id).'/forms/manage');
+        include(STAFFINC_DIR . 'templates/form-manage.tmpl.php');
+    }
+
+    function updateForms($org_id) {
+        global $thisstaff;
+
+        if (!$thisstaff)
+            Http::response(403, "Login required");
+        elseif (!($org = Organization::lookup($org_id)))
+            Http::response(404, "No such ticket");
+        elseif (!isset($_POST['forms']))
+            Http::response(422, "Send updated forms list");
+
+        // Add new forms
+        $forms = DynamicFormEntry::forOrganization($org_id);
+        foreach ($_POST['forms'] as $sort => $id) {
+            $found = false;
+            foreach ($forms as $e) {
+                if ($e->get('form_id') == $id) {
+                    $e->set('sort', $sort);
+                    $e->save();
+                    $found = true;
+                    break;
+                }
+            }
+            // New form added
+            if (!$found && ($new = DynamicForm::lookup($id))) {
+                $org->addForm($new, $sort);
+            }
+        }
+
+        // Deleted forms
+        foreach ($forms as $idx => $e) {
+            if (!in_array($e->get('form_id'), $_POST['forms']))
+                $e->delete();
+        }
+
+        Http::response(201, 'Successfully managed');
+    }
 }
 ?>
diff --git a/include/ajax.tickets.php b/include/ajax.tickets.php
index 75e43fc4c7f29c018fdfa7abfab1f865d7260c4e..016882de13a4599bbf5976ed940c7b28d2fd73cc 100644
--- a/include/ajax.tickets.php
+++ b/include/ajax.tickets.php
@@ -613,6 +613,8 @@ class TicketsAjaxAPI extends AjaxController {
     }
 
     function manageForms($ticket_id) {
+        $forms = DynamicFormEntry::forTicket($ticket_id);
+        $info = array('action' => '#tickets/'.Format::htmlchars($ticket_id).'/forms/manage');
         include(STAFFINC_DIR . 'templates/form-manage.tmpl.php');
     }
 
diff --git a/include/class.organization.php b/include/class.organization.php
index 3801bba3a423067dcf32bbf0c64dd92d352776c0..81937964e55c75302872cf1b20ac72c1915a3d4f 100644
--- a/include/class.organization.php
+++ b/include/class.organization.php
@@ -185,6 +185,14 @@ class Organization extends OrganizationModel {
         }
     }
 
+    function addForm($form, $sort=1) {
+        $form = $form->instanciate();
+        $form->set('sort', $sort);
+        $form->set('object_type', 'O');
+        $form->set('object_id', $this->getId());
+        $form->save();
+    }
+
     function to_json() {
 
         $info = array(
diff --git a/include/staff/org-view.inc.php b/include/staff/org-view.inc.php
index e866e4b5cdbd1b648691b82b05dd76050b10d904..c19a42efa3bfd114d5aa01a174a2cc9bec87d52b 100644
--- a/include/staff/org-view.inc.php
+++ b/include/staff/org-view.inc.php
@@ -9,8 +9,21 @@ if(!defined('OSTSCPINC') || !$thisstaff || !is_object($org)) die('Invalid path')
              title="Reload"><i class="icon-refresh"></i> <?php echo $org->getName(); ?></a></h2>
         </td>
         <td width="50%" class="right_align has_bottom_border">
+            <span class="action-button" data-dropdown="#action-dropdown-more">
+                <span ><i class="icon-cog"></i> More</span>
+                <i class="icon-caret-down"></i>
+            </span>
             <a id="org-delete" class="action-button org-action"
             href="#orgs/<?php echo $org->getId(); ?>/delete"><i class="icon-trash"></i> Delete Organization</a>
+            <div id="action-dropdown-more" class="action-dropdown anchor-right">
+              <ul>
+                <li><a href="#ajax.php/orgs/<?php echo $org->getId();
+                    ?>/forms/manage" onclick="javascript:
+                    $.dialog($(this).attr('href').substr(1), 201);
+                    return false"
+                    ><i class="icon-paste"></i> Manage Forms</a></li>
+              </ul>
+            </div>
         </td>
     </tr>
 </table>
@@ -55,6 +68,8 @@ if(!defined('OSTSCPINC') || !$thisstaff || !is_object($org)) die('Invalid path')
     class="icon-list-alt"></i>&nbsp;Tickets</a></li>
     <li><a id="notes_tab" href="#notes"><i
     class="icon-pushpin"></i>&nbsp;Notes</a></li>
+    <li><a id="forms_tab" href="#fields"><i
+    class="icon-paste"></i>&nbsp;Fields</a></li>
 </ul>
 <div class="tab_content" id="users">
 <?php
@@ -66,6 +81,13 @@ include STAFFINC_DIR . 'templates/users.tmpl.php';
 include STAFFINC_DIR . 'templates/tickets.tmpl.php';
 ?>
 </div>
+<div class="tab_content" id="fields" style="display:none">
+ <table class="form_table" width="940" border="0" cellspacing="0" cellpadding="2">
+<?php foreach ($org->getDynamicData() as $form) {
+    $form->render(true, false, array('mode'=>'edit','width'=>160,'entry'=>$form));
+} ?>
+ </table>
+</div>
 
 <div class="tab_content" id="notes" style="display:none">
 <?php
diff --git a/include/staff/templates/form-manage.tmpl.php b/include/staff/templates/form-manage.tmpl.php
index 5e59011df9c12931f013395dbaa11920e0a1214f..52f670e91f42b9b3b848b3c1d0da36d763212434 100644
--- a/include/staff/templates/form-manage.tmpl.php
+++ b/include/staff/templates/form-manage.tmpl.php
@@ -5,11 +5,11 @@ Sort the forms on this ticket by click and dragging on them. Use the box
 below the forms list to add new forms to the ticket.
 <br/>
 <br/>
-<form method="post" action="#tickets/<?php echo $ticket_id; ?>/forms/manage">
+<form method="post" action="<?php echo $info['action']; ?>">
 <div id="ticket-entries">
 <?php
 $current_list = array();
-foreach (DynamicFormEntry::forTicket($ticket_id) as $e) { ?>
+foreach ($forms as $e) { ?>
 <div class="sortable-row-item" data-id="<?php echo $e->get('id'); ?>">
     <input type="hidden" name="forms[]" value="<?php echo $e->get('form_id'); ?>" />
     <i class="icon-reorder"></i> <?php echo $e->getForm()->getTitle();
diff --git a/scp/ajax.php b/scp/ajax.php
index 2dd902087939a1c2f77240388d428ac3b6ad6878..98dd7f132fa0c6a9830cc1e0db203dfce6645b89 100644
--- a/scp/ajax.php
+++ b/scp/ajax.php
@@ -112,7 +112,9 @@ $dispatcher = patterns('',
         url('^/(?P<id>\d+)/import-users$', 'importUsers'),
         url_get('^/(?P<id>\d+)/delete$', 'delete'),
         url_delete('^/(?P<id>\d+)/delete$', 'delete'),
-        url_post('^/(?P<id>\d+)/note$', 'createNote')
+        url_post('^/(?P<id>\d+)/note$', 'createNote'),
+        url_get('^/(?P<id>\d+)/forms/manage$', 'manageForms'),
+        url_post('^/(?P<id>\d+)/forms/manage$', 'updateForms')
     )),
     url('^/tickets/', patterns('ajax.tickets.php:TicketsAjaxAPI',
         url_get('^(?P<tid>\d+)/change-user$', 'changeUserForm'),