diff --git a/application/modules/admin/controllers/RedmineController.php b/application/modules/admin/controllers/RedmineController.php
index a3bbf264df22c132dc5948edd77d6b02e8107518..8538d86fc7c1ea865abda1c7c3ea32ff1b5af2d6 100644
--- a/application/modules/admin/controllers/RedmineController.php
+++ b/application/modules/admin/controllers/RedmineController.php
@@ -107,18 +107,32 @@ class Admin_RedmineController extends ZendAfi_Controller_Action {
       ->setService($service);
 
     $this->view->form = $form = ZendAfi_Form_Redmine_Issue::newWithIssue($issue, $service);
-    if ($this->_request->isPost()
-        && $form->isValid($this->_request->getPost())) {
-      $issue->updateAttributes($form->getValues());
 
-      if ($response = $service->createIssue($issue)) {
-        $this->_helper->notify($this->_('Demande enregistrée'));
-        $this->_redirectToIndex();
-        return;
-      }
+    if (!$this->_request->isPost())
+      return;
+
+    if (!$form->isValid($this->_request->getPost()))
+      return $this->_helper->notify($this->_('Erreur lors de l\'enregistrement'));
 
-      $this->_helper->notify($this->_('Erreur lors de l\'enregistrement'));
+    $issue->updateAttributes($form->getValues());
+
+    if (!$response = $service->createIssue($issue))
+      return $this->_helper->notify($this->_('Erreur lors de la création du ticket'));
+
+    if(!$response instanceof SimpleXMLElement)
+      return $this->_helper->notify($this->_('Erreur lors de la création du ticket'));
+
+    if($issue_id = $response->id->__toString()) {
+      $service->attachToIssue($issue->setid($issue_id));
+      $this->_helper->notify($this->_('Demande %s créée', $issue_id));
+      return $this->_redirect(Class_Url::absolute(['module' => 'admin',
+                                                   'controller' => 'redmine',
+                                                   'action' => 'edit-issue',
+                                                   'id' => $issue_id,
+                                                   'id_lib' => $this->_getParam('id_lib')]));
     }
+
+    $this->_helper->notify($this->_('Erreur lors de la création du ticket'));
   }
 
 
@@ -179,7 +193,8 @@ class Admin_RedmineController extends ZendAfi_Controller_Action {
       return $this->_jsonError($this->_('La pièce jointe est invalide.'));
 
     if(!preg_match('/[^.]$/', $decoded_response['upload']['token']))
-      return $this->_jsonError($this->_('La pièce jointe est invalide.'));
+      return $this->_jsonError($this->_('L\'ajout de la pièce jointe a échoué car la clé reçue "%s" est invalide.',
+                                        $decoded_response['upload']['token']));
 
     return $this->_helper->json($decoded_response);
   }
diff --git a/library/Class/WebService/Redmine.php b/library/Class/WebService/Redmine.php
index 03692cf23d80c88f08f2bce558667a8ddc57f3bd..ed88740746311da0a9f95a69a849e7236cfe73dd 100644
--- a/library/Class/WebService/Redmine.php
+++ b/library/Class/WebService/Redmine.php
@@ -208,6 +208,9 @@ class Class_WebService_Redmine extends Class_WebService_Abstract {
 
 
   public function attachToIssue($issue) {
+    if(!$issue)
+      return null;
+
     if(!$token = $issue->gettoken())
       return null;
 
diff --git a/public/opac/java/form_to_tabs/form_to_tabs.js b/public/opac/java/form_to_tabs/form_to_tabs.js
index 0ad150cce3c8888aa68c19ddef51229090f3280a..fb3b271709bbbaa27f59131021323e0f471103a5 100644
--- a/public/opac/java/form_to_tabs/form_to_tabs.js
+++ b/public/opac/java/form_to_tabs/form_to_tabs.js
@@ -21,29 +21,28 @@
 (function ( $ ) {
   $.fn.form_to_tabs = function() {
     var form = $(this);
-    var tabs = $('<ul></ul>');
-    var no_legend = $('<div></div>');
     var form_fieldsets = form.find('fieldset');
 
-    if(1 >= form_fieldsets.length)
+    if(0 == form_fieldsets.length)
       return false;
 
+    var tabs = $('<ul></ul>');
+    var no_legend = $('<div></div>');
+
     form_fieldsets.each(function(index, element) {
       var fieldset = $(element);
-      //fieldset.attr('id', 'tab'+index)
       var legend = fieldset.find('legend');
 
-      if(1 > legend.length) {
-        no_legend.append(fieldset.clone());
-        fieldset.remove();
-        return;
+      if(0 == legend.length) {
+        fieldset.appendTo(no_legend);
+        return true;
       }
 
       var tab_link = $('<a>' + legend.text() +'</a>');
       tab_link.attr('href', '#' + fieldset.attr('id'));
       
       if (fieldset.find('.errors').length > 0)
-	tab_link.addClass('errors');
+	      tab_link.addClass('errors');
 
       
       tabs.append($('<li></li>').append(tab_link));
diff --git a/tests/application/modules/admin/controllers/RedmineControllerTest.php b/tests/application/modules/admin/controllers/RedmineControllerTest.php
index 41909a1b4be5fbce0737c8666e738f41f605ea10..c52f2a7c3483f944b0e350281049e03432b4f771 100644
--- a/tests/application/modules/admin/controllers/RedmineControllerTest.php
+++ b/tests/application/modules/admin/controllers/RedmineControllerTest.php
@@ -786,7 +786,7 @@ class Admin_RedmineControllerUploadFileTest extends Admin_RedmineControllerFixtu
   /** @test */
   public function shouldReturnErrorMessageInJsonBecauseTokenDoesntMatch() {
     $this->postDispatch('admin/redmine/upload-file/id_lib/1', ['data' => 'token invalide']);
-    $this->assertContains('{"status":"error","message":"La pi\u00e8ce jointe est invalide.",', $this->_response->getBody());
+    $this->assertContains('{"status":"error","message":"L\'ajout de la pi\u00e8ce jointe a \u00e9chou\u00e9 car la cl\u00e9 re\u00e7ue \"7167.\" est invalide."', $this->_response->getBody());
   }
 }