diff --git a/environs/ec2/ec2.go b/environs/ec2/ec2.go
index <HASH>..<HASH> 100644
--- a/environs/ec2/ec2.go
+++ b/environs/ec2/ec2.go
@@ -419,7 +419,9 @@ func (e *environ) Destroy(insts []environs.Instance) error {
 	if err != nil {
 		return err
 	}
-	// take an immutable reference to the current Storage
+	// to properly observe e.storageUnlocked we need to get it's value while
+	// holding e.configMutex. e.Storage() does this for us, then we convert
+	// back to the (*storage) to access the private deleteAll() method.
 	st := e.Storage().(*storage)
 	err = st.deleteAll()
 	if err != nil {
diff --git a/environs/interface.go b/environs/interface.go
index <HASH>..<HASH> 100644
--- a/environs/interface.go
+++ b/environs/interface.go
@@ -131,11 +131,13 @@ type Environ interface {
 	Instances(ids []string) ([]Instance, error)
 
 	// Storage returns storage specific to the environment.
-	// The reference returned is immutable with respect to SetConfig.
+	// The configuration of the Storage returned is unaffected by 
+	// subsiquent calls to SetConfig. 
 	Storage() Storage
 
 	// PublicStorage returns storage shared between environments.
-	// The reference returned is immutable with respect to SetConfig.
+	// The configuration of the Storage returned is unaffected by 
+	// subsiquent calls to SetConfig. 
 	PublicStorage() StorageReader
 
 	// Destroy shuts down all known machines and destroys the
responding to review comments; some wordsmithing