diff --git a/gtk2_ardour/editor_regions.cc b/gtk2_ardour/editor_regions.cc
index 72a0da2..5386528 100644
--- a/gtk2_ardour/editor_regions.cc
+++ b/gtk2_ardour/editor_regions.cc
@@ -294,7 +294,7 @@ EditorRegions::add_region (boost::shared_ptr<Region> region)
 	string str;
 	TreeModel::Row row;
 	Gdk::Color c;
-	bool missing_source = boost::dynamic_pointer_cast<SilentFileSource>(region->source());
+	bool missing_source = boost::dynamic_pointer_cast<SilentFileSource>(region->source()).use_count>0;
 
 	if (!_show_automatic_regions && region->automatic()) {
 		return;
diff --git a/libs/pbd/pbd/properties.h b/libs/pbd/pbd/properties.h
index e65929c..49915fb 100644
--- a/libs/pbd/pbd/properties.h
+++ b/libs/pbd/pbd/properties.h
@@ -442,7 +442,7 @@ public:
 	}
 
 	operator bool () const {
-		return _current;
+		return _current.use_count() > 0;
 	}
 
 protected:
