diff --git a/include/class_template.inc b/include/class_template.inc
index f455a5b4a0dbac5556bb792124b7243c888363a1..cf2b0369ae1b5cae8e5e683f6f52864dc7718bf8 100644
--- a/include/class_template.inc
+++ b/include/class_template.inc
@@ -263,12 +263,20 @@ class template
         continue;
       }
       if ($plugin->is_modal_dialog()) {
-        $dialogResult = $plugin->dialog->execute();
-        if ($dialogResult === FALSE) {
-          $plugin->closeDialog();
+        if ($plugin instanceof simplePlugin) {
+          $dialogResult = $plugin->dialog->execute();
+          if ($dialogResult === FALSE) {
+            $plugin->closeDialog();
+          } else {
+            $this->tabObject->current = $class;
+            return $dialogResult;
+          }
         } else {
-          $this->tabObject->current = $class;
-          return $dialogResult;
+          $dialogResult = $plugin->execute();
+          if ($plugin->is_modal_dialog()) {
+            $this->tabObject->current = $class;
+            return $dialogResult;
+          }
         }
       }
       $attributesRendered = [];