Index: builtin/src/main/java/org/hippoecm/frontend/plugins/standardworkflow/AddDocumentDialog.html
===================================================================
--- builtin/src/main/java/org/hippoecm/frontend/plugins/standardworkflow/AddDocumentDialog.html	(revision 48046)
+++ builtin/src/main/java/org/hippoecm/frontend/plugins/standardworkflow/AddDocumentDialog.html	(working copy)
@@ -50,6 +50,7 @@
           <br/>
         </td>
       </tr>
+      <wicket:child/>
     </table>
   </wicket:extend>
 </html>
Index: builtin/src/main/java/org/hippoecm/frontend/plugins/standardworkflow/FolderWorkflowPlugin.java
===================================================================
--- builtin/src/main/java/org/hippoecm/frontend/plugins/standardworkflow/FolderWorkflowPlugin.java	(revision 48046)
+++ builtin/src/main/java/org/hippoecm/frontend/plugins/standardworkflow/FolderWorkflowPlugin.java	(working copy)
@@ -312,6 +312,7 @@
                                 arguments.put("localName", localName);
 
                                 String path = workflow.add(category, addDocumentModel.getPrototype(), arguments);
+                                onWorkflowAdded(path);
                                 UserSession.get().getJcrSession().refresh(true);
                                 JcrNodeModel nodeModel = new JcrNodeModel(path);
                                 if (!nodeName.equals(localName)) {
@@ -342,6 +343,8 @@
         }
     }
 
+    protected void onWorkflowAdded(String path) { }
+
     private boolean isActionAvailable(final String action, final Map<String, Serializable> hints) {
         return hints.containsKey(action) && hints.get(action) instanceof Boolean && (Boolean) hints.get(action);
     }
@@ -366,20 +369,13 @@
 
     protected Dialog newAddDocumentDialog(AddDocumentArguments addDocumentModel, String category, Set<String> prototypes, boolean translated, IWorkflowInvoker invoker) {
 
-        AddDocumentDialog dialog = new AddDocumentDialog(
+        AddDocumentDialog dialog = createAddDocumentDialog(
                 addDocumentModel,
-                new StringResourceModel(category, this, null),
                 category,
                 prototypes,
                 translated,
-                invoker,
-                new LoadableDetachableModel<StringCodec>() {
-                    @Override
-                    protected StringCodec load() {
-                        return getNodeNameCodec();
-                    }
-                },
-                getLocaleProvider());
+                invoker
+        );
 
         WorkflowDescriptorModel descriptorModel = (WorkflowDescriptorModel) getDefaultModel();
         try {
@@ -400,6 +396,25 @@
         return dialog;
     }
 
+    protected AddDocumentDialog createAddDocumentDialog(AddDocumentArguments addDocumentModel, String category,
+                                                        Set<String> prototypes, boolean translated,
+                                                        IWorkflowInvoker invoker) {
+        return new AddDocumentDialog(
+                addDocumentModel,
+                new StringResourceModel(category, this, null),
+                category,
+                prototypes,
+                translated,
+                invoker,
+                new LoadableDetachableModel<StringCodec>() {
+                    @Override
+                    protected StringCodec load() {
+                        return getNodeNameCodec();
+                    }
+                },
+                getLocaleProvider());
+    }
+
     protected IDataProvider<StdWorkflow> createListDataProvider(List<StdWorkflow> list) {
         return new ListDataProvider<StdWorkflow>(list);
     }
Index: gallery/frontend/src/main/java/org/hippoecm/frontend/plugins/gallery/GalleryWorkflowPlugin$UploadDialog.html
===================================================================
--- gallery/frontend/src/main/java/org/hippoecm/frontend/plugins/gallery/GalleryWorkflowPlugin$UploadDialog.html	(revision 48046)
+++ gallery/frontend/src/main/java/org/hippoecm/frontend/plugins/gallery/GalleryWorkflowPlugin$UploadDialog.html	(working copy)
@@ -21,5 +21,6 @@
         </label>
         <select wicket:id="type" id="typeselect"/>
     </wicket:enclosure>
+    <wicket:child/>
 </wicket:extend>
 </html>
Index: gallery/frontend/src/main/java/org/hippoecm/frontend/plugins/gallery/GalleryWorkflowPlugin.java
===================================================================
--- gallery/frontend/src/main/java/org/hippoecm/frontend/plugins/gallery/GalleryWorkflowPlugin.java	(revision 48046)
+++ gallery/frontend/src/main/java/org/hippoecm/frontend/plugins/gallery/GalleryWorkflowPlugin.java	(working copy)
@@ -150,6 +150,7 @@
             try {
                 getGalleryProcessor().makeImage(node, is, mimetype, filename);
                 node.getSession().save();
+                onGalleryItemCreation(node);
                 newItems.add(node.getPath());
             } catch (Exception ex) {
                 remove(manager, node);
@@ -163,6 +164,8 @@
         }
     }
 
+    protected void onGalleryItemCreation(Node node) { }
+
     private void remove(final WorkflowManager manager, final HippoNode node) {
         try {
             DefaultWorkflow defaultWorkflow = (DefaultWorkflow) manager.getWorkflow("core", node);
@@ -245,11 +248,15 @@
             typeComponent = new Label("type", "default").setVisible(false);
         }
 
-        UploadDialog dialog = new UploadDialog(getPluginContext(), getPluginConfig());
+        UploadDialog dialog = createUploadDialog();
         dialog.add(typeComponent);
         return dialog;
     }
 
+    protected UploadDialog createUploadDialog() {
+        return new UploadDialog(getPluginContext(), getPluginConfig());
+    }
+
     protected StringCodec getLocalizeCodec() {
         ISettingsService settingsService = getPluginContext().getService(ISettingsService.SERVICE_ID,
                 ISettingsService.class);
