commit cdb95d1724c7ecfaf5168338f2ca721300f98c86
Author: Robby Stephenson <robby@periapsis.org>
Date:   Thu Nov 14 22:03:20 2013 -0800

    Fix crash when importing from command line
    
    An unguarded pointer in the ProgressManager::Done class was being
    accessed post-deletion. Add a QPointer check to avoid crashing/
    
    Fixes Debian bug #729499
    
    FIXED-IN: 2.3.9

diff --git a/src/progressmanager.cpp b/src/progressmanager.cpp
index 6e4f0b1..9b7873b 100644
--- a/src/progressmanager.cpp
+++ b/src/progressmanager.cpp
@@ -38,7 +38,10 @@ uint qHash(const QPointer<T>& pointer_) {
 }
 
 ProgressItem::Done::~Done() {
-  ProgressManager::self()->setDone(m_object);
+  // m_object might have been deleted, so check for existence
+  if(m_object) {
+    ProgressManager::self()->setDone(m_object);
+  }
 }
 
 ProgressItem::ProgressItem(const QString& label_, bool canCancel_)
diff --git a/src/progressmanager.h b/src/progressmanager.h
index b3d5cbd..76af25f 100644
--- a/src/progressmanager.h
+++ b/src/progressmanager.h
@@ -50,7 +50,7 @@ public:
     Done(QObject* obj) : m_object(obj) {}
     ~Done();
   private:
-    QObject* m_object;
+    QPointer<QObject> m_object;
   };
 
   bool canCancel() const { return m_canCancel; }
