diff --git a/CHANGELOG b/CHANGELOG
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,10 @@
+git-annex (7.20200309) upstream; urgency=medium
+
+  * Fix regression that prevented external special remotes from using
+    GETCONFIG to query values like "name". (Introduced in version 7.20200202.7.)
+
+ -- Joey Hess <id@joeyh.name>  Mon, 09 Mar 2020 12:40:28 -0400
+
 git-annex (7.20200226) upstream; urgency=high
 
   * Fix serious regression in gcrypt and encrypted git-lfs remotes.
diff --git a/Remote/External.hs b/Remote/External.hs
--- a/Remote/External.hs
+++ b/Remote/External.hs
@@ -420,9 +420,9 @@
 			modifyTVar' (externalConfigChanges st) $ \f ->
 				f . M.insert (Accepted setting) (Accepted value)
 	handleRemoteRequest (GETCONFIG setting) = do
-		value <- fromMaybe ""
+		value <- maybe "" fromProposedAccepted
 			. (M.lookup (Accepted setting))
-			. getRemoteConfigPassedThrough
+			. unparsedRemoteConfig
 			<$> liftIO (atomically $ readTVar $ externalConfig st)
 		send $ VALUE value
 	handleRemoteRequest (SETCREDS setting login password) = case (externalUUID external, externalGitConfig external) of
diff --git a/Types/RemoteConfig.hs b/Types/RemoteConfig.hs
--- a/Types/RemoteConfig.hs
+++ b/Types/RemoteConfig.hs
@@ -23,8 +23,9 @@
 
 {- Before being used a RemoteConfig has to be parsed. -}
 data ParsedRemoteConfig = ParsedRemoteConfig
-	(M.Map RemoteConfigField RemoteConfigValue)
-	RemoteConfig
+	{ parsedRemoteConfigMap :: M.Map RemoteConfigField RemoteConfigValue
+	, unparsedRemoteConfig :: RemoteConfig
+	}
 
 {- Remotes can have configuration values of many types, so use Typeable
  - to let them all be stored in here. -}
diff --git a/git-annex.cabal b/git-annex.cabal
--- a/git-annex.cabal
+++ b/git-annex.cabal
@@ -1,5 +1,5 @@
 Name: git-annex
-Version: 7.20200226
+Version: 7.20200309
 Cabal-Version: >= 1.8
 License: AGPL-3
 Maintainer: Joey Hess <id@joeyh.name>
