diff --git a/ipojo/arch-gogo/src/main/java/org/apache/felix/ipojo/arch/gogo/Arch.java b/ipojo/arch-gogo/src/main/java/org/apache/felix/ipojo/arch/gogo/Arch.java
index dffd51d..af6be2a 100644
--- a/ipojo/arch-gogo/src/main/java/org/apache/felix/ipojo/arch/gogo/Arch.java
+++ b/ipojo/arch-gogo/src/main/java/org/apache/felix/ipojo/arch/gogo/Arch.java
@@ -159,7 +159,12 @@
             if (!instanceDeclaration.getStatus().isBound()) {
                 if (instance.equals(name(instanceDeclaration.getConfiguration()))) {
                     System.out.println(format("Instance %s not bound to its factory%n", instance));
+                    System.out.println(format(" type: %s%n", instanceDeclaration.getComponentName()));
                     System.out.println(format(" -> %s%n", instanceDeclaration.getStatus().getMessage()));
+                    Throwable throwable = instanceDeclaration.getStatus().getThrowable();
+                    if (throwable != null) {
+                        throwable.printStackTrace(System.out);
+                    }
                     return;
                 }
             }
@@ -211,6 +216,10 @@
                 // Unbound: maybe private or public type
                 System.out.printf("Factory %s is not bound%n", type.getComponentName());
                 System.out.printf("  -> %s%n", type.getStatus().getMessage());
+                Throwable throwable = type.getStatus().getThrowable();
+                if (throwable != null) {
+                    throwable.printStackTrace(System.out);
+                }
             } else {
                 // Bound, this is only a private factory
                 System.out.printf("Factory %s is bound - Private%n", type.getComponentName());
