diff --git a/Control/AthViews/AthViews/SimpleView.h b/Control/AthViews/AthViews/SimpleView.h
index c689a45dbd44ca05350172d8b7130b72577c6812..908acfdbe4a9aa3aae3c2605cb447e7fd35019d0 100644
--- a/Control/AthViews/AthViews/SimpleView.h
+++ b/Control/AthViews/AthViews/SimpleView.h
@@ -35,7 +35,7 @@ class SimpleView : public IProxyDict
 	public:
 		DeclareInterfaceID( SimpleView, 2, 0 );
 		SimpleView();
-		SimpleView( std::string Name );
+		SimpleView( std::string Name, bool AllowFallThrough=false );
 		virtual ~SimpleView();
 
 		/// get default proxy with given id. Returns 0 to flag failure
@@ -182,7 +182,7 @@ class SimpleView : public IProxyDict
 		ServiceHandle< StoreGateSvc > m_store;
 		std::string m_name;
                 std::vector<const IProxyDict*> m_parents;
-
+    bool m_allowFallThrough;
 };
 
 
diff --git a/Control/AthViews/src/SimpleView.cxx b/Control/AthViews/src/SimpleView.cxx
index 62e7a649328c2ec041076347fb09b85f7c6e347c..438a236b3799811ca6202b2eaad683e56e0e6e7d 100644
--- a/Control/AthViews/src/SimpleView.cxx
+++ b/Control/AthViews/src/SimpleView.cxx
@@ -10,13 +10,15 @@ using namespace std;
 
 SimpleView::SimpleView() :
 	m_store( "StoreGateSvc", "SimpleView" ),
-	m_name( "SimpleView" )
+	m_name( "SimpleView" ),
+  m_allowFallThrough( false )
 {
 }
 
-SimpleView::SimpleView( std::string Name ) :
+SimpleView::SimpleView( std::string Name, bool AllowFallThrough ) :
 	m_store( "StoreGateSvc", "SimpleView" ),
-	m_name( Name )
+	m_name( Name ),
+  m_allowFallThrough( AllowFallThrough )
 {
 }
 
@@ -70,6 +72,13 @@ SG::DataProxy * SimpleView::proxy( const CLID& id, const std::string& key ) cons
 	    throw std::runtime_error("Duplicate object CLID:"+ std::to_string(id) + " key: " + key + " found in views: " + name()+ " and parent " + parent->name() );
 	  } // else search further
 	}
+
+  //Look in the default store - change to fix IDC
+  if ( m_allowFallThrough and not local )
+  {
+    return m_store->proxy( id, key );
+  }
+
 	return local; // can be the nullptr still
 }