diff --git a/pom.xml b/pom.xml
index 14881172abce6fbeac26365e055e6b68a59bfde8..5a7658e45c574875fbeb71532082a22a9dde247a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -7,11 +7,11 @@
     <parent>
         <groupId>org.bioimageanalysis.icy</groupId>
         <artifactId>parent-pom-plugin</artifactId>
-        <version>1.0.1</version>
+        <version>1.0.6</version>
     </parent>
 
     <artifactId>connected-components</artifactId>
-    <version>4.8.7</version>
+    <version>4.8.8</version>
 
     <packaging>jar</packaging>
 
diff --git a/src/main/java/plugins/adufour/connectedcomponents/ConnectedComponent.java b/src/main/java/plugins/adufour/connectedcomponents/ConnectedComponent.java
index 6fad271bf9b35069b854d39ca9f2e79e10759531..0b20a5b6193be92c44f18ce28445723cfd224836 100644
--- a/src/main/java/plugins/adufour/connectedcomponents/ConnectedComponent.java
+++ b/src/main/java/plugins/adufour/connectedcomponents/ConnectedComponent.java
@@ -631,12 +631,17 @@ public class ConnectedComponent extends Detection implements Iterable<Point3i>
     /**
      * Paints this component onto the given sequence with the specified value
      * 
-     * @param s Sequence
-     * @param t int
-     * @param c int
-     * @param value double
-     */
-    public void paintOnSequence(Sequence s, int t, int c, double value)
+     * @param s
+     *        Sequence
+     * @param t
+     *        int
+     * @param c
+     *        int
+     * @param value
+     *        double
+     * @throws InterruptedException
+     */
+    public void paintOnSequence(Sequence s, int t, int c, double value) throws InterruptedException
     {
         DataIteratorUtil.set(new SequenceDataIterator(s, toROI(), true, -1, t, c), value);
     }
diff --git a/src/main/java/plugins/adufour/connectedcomponents/ConnectedComponents.java b/src/main/java/plugins/adufour/connectedcomponents/ConnectedComponents.java
index 1360ebefe9b056ebe31eefffa5fe16c2495a2d7f..1ae45da533e9e27e1bb418f903a58afb8e53e128 100644
--- a/src/main/java/plugins/adufour/connectedcomponents/ConnectedComponents.java
+++ b/src/main/java/plugins/adufour/connectedcomponents/ConnectedComponents.java
@@ -14,6 +14,7 @@ import javax.vecmath.Point3i;
 import javax.vecmath.Point4d;
 
 import icy.file.FileUtil;
+import icy.gui.frame.progress.FailedAnnounceFrame;
 import icy.image.IcyBufferedImage;
 import icy.image.colormap.FireColorMap;
 import icy.main.Icy;
@@ -268,28 +269,36 @@ public class ConnectedComponents extends EzPlug implements Block
         // never remove objects touching the Z edge in 2D (that would remove... everything!)
         boolean discardEdgesAlongZ = (inputSequence.getSizeZ() > 1 && discardEdgesZ.getValue());
 
-        if (extractionMethod.getValue() == ExtractionType.ROI)
+        try
         {
-            int width = inputSequence.getWidth();
-            int height = inputSequence.getHeight();
+            if (extractionMethod.getValue() == ExtractionType.ROI)
+            {
+                int width = inputSequence.getWidth();
+                int height = inputSequence.getHeight();
 
-            Sequence labeledSequence = new Sequence(inputSequence.getMetadata());
-            for (int t = 0; t < inputSequence.getSizeT(); t++)
-                for (int z = 0; z < inputSequence.getSizeZ(); z++)
-                    labeledSequence.setImage(t, z, new IcyBufferedImage(width, height, 1, DataType.USHORT));
+                Sequence labeledSequence = new Sequence(inputSequence.getMetadata());
+                for (int t = 0; t < inputSequence.getSizeT(); t++)
+                    for (int z = 0; z < inputSequence.getSizeZ(); z++)
+                        labeledSequence.setImage(t, z, new IcyBufferedImage(width, height, 1, DataType.USHORT));
 
-            short cpt = 1;
-            for (ROI roi : inputSequence.getROIs())
-                DataIteratorUtil.set(new SequenceDataIterator(labeledSequence, roi, true), cpt++ & 0xffff);
+                short cpt = 1;
+                for (ROI roi : inputSequence.getROIs())
+                    DataIteratorUtil.set(new SequenceDataIterator(labeledSequence, roi, true), cpt++ & 0xffff);
 
-            componentsMap = extractConnectedComponents(labeledSequence, 0, ExtractionType.BACKGROUND_LABELED,
-                    discardEdgesX.getValue(), discardEdgesY.getValue(), discardEdgesAlongZ, min, max, output);
+                componentsMap = extractConnectedComponents(labeledSequence, 0, ExtractionType.BACKGROUND_LABELED,
+                        discardEdgesX.getValue(), discardEdgesY.getValue(), discardEdgesAlongZ, min, max, output);
+            }
+            else
+            {
+                componentsMap = extractConnectedComponents(inputSequence, background.getValue(),
+                        extractionMethod.getValue(), discardEdgesX.getValue(), discardEdgesY.getValue(),
+                        discardEdgesAlongZ, min, max, output);
+            }
         }
-        else
+        catch (InterruptedException e)
         {
-            componentsMap = extractConnectedComponents(inputSequence, background.getValue(),
-                    extractionMethod.getValue(), discardEdgesX.getValue(), discardEdgesY.getValue(), discardEdgesAlongZ,
-                    min, max, output);
+            new FailedAnnounceFrame(e.getMessage());
+            return;
         }
 
         outputSequence.setValue(output);
@@ -1347,8 +1356,10 @@ public class ConnectedComponents extends EzPlug implements Block
      * 
      * @param output
      *        a sequence of type INT
-     * @param components Map of List of ConnectedComponent
-     * @param comparator Comparator of ConnectedComponents
+     * @param components
+     *        Map of List of ConnectedComponent
+     * @param comparator
+     *        Comparator of ConnectedComponents
      */
     public static void createLabeledSequence(Sequence output, Map<Integer, List<ConnectedComponent>> components,
             Comparator<ConnectedComponent> comparator)