diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,22 @@
 # Aura Changelog
 
+## 3.1.2 (2020-06-10)
+
+This release fixes a regression in `3.1.1`. Please update as soon as possible.
+
+#### Added
+
+- The `-c` / `--clean` flag for `-A`. After a package's tarball has been built
+  and copied to the package cache, delete its build directory immediately. By
+  default, build directories are left in `/tmp` to be cleaned by the OS, but for
+  users who don't restart their machines often, this can clog up disk space.
+
+#### Fixed
+
+- **Apologies to Aura users.** The `-E` change in the previous release caused a
+  lot of unexpected behaviour, so that change has be revoked. A future version
+  of Aura will explore a better solution for handling environment variables.
+
 ## 3.1.1 (2020-06-02)
 
 #### Changed
diff --git a/aura.cabal b/aura.cabal
--- a/aura.cabal
+++ b/aura.cabal
@@ -1,6 +1,6 @@
 cabal-version:      2.2
 name:               aura
-version:            3.1.1
+version:            3.1.2
 synopsis:           A secure package manager for Arch Linux and the AUR.
 description:
   Aura is a package manager for Arch Linux. It connects to both the
diff --git a/doc/aura.8 b/doc/aura.8
--- a/doc/aura.8
+++ b/doc/aura.8
@@ -1,7 +1,7 @@
 .\" Man page for `aura`
 .\" Written by Colin Woodbury <colin@fosskers.ca>
 
-.TH aura 8 "2020 May" "Aura" "Aura Manual"
+.TH aura 8 "2020 June" "Aura" "Aura Manual"
 
 .\" Disable hyphenation.
 .nh
@@ -74,6 +74,12 @@
 main package. This prevents the creation of orphan packages. Also note that
 while the package itself will be uninstalled, its package file will remain in
 the cache.
+.RE
+.P
+\fB\-c\fR, \-\-clean
+.RS 4
+After a package's tarball has been built and copied to the package cache, delete
+its build directory immediately.
 .RE
 .P
 \fB\-d\fR, \-\-deps <package(s)>
diff --git a/exec/Aura/Flags.hs b/exec/Aura/Flags.hs
--- a/exec/Aura/Flags.hs
+++ b/exec/Aura/Flags.hs
@@ -391,7 +391,7 @@
           <|> pure None
 
 buildSwitches :: Parser (Set BuildSwitch)
-buildSwitches = S.fromList <$> many (lv <|> dmd <|> dsm <|> dpb <|> rbd <|> he <|> dr <|> sa <|> fo <|> npc <|> asd <|> sdc)
+buildSwitches = S.fromList <$> many (lv <|> dmd <|> dsm <|> dpb <|> rbd <|> he <|> dr <|> sa <|> fo <|> npc <|> asd <|> sdc <|> dbd)
   where dmd = flag' DeleteMakeDeps (long "delmakedeps" <> short 'a' <> hidden <> help "Uninstall makedeps after building.")
         dsm = flag' DontSuppressMakepkg (long "unsuppress" <> short 'x' <> hidden <> help "Unsuppress makepkg output.")
         dpb = flag' DiffPkgbuilds (long "diff" <> short 'k' <> hidden <> help "Show PKGBUILD diffs.")
@@ -404,6 +404,7 @@
         npc = flag' NoPkgbuildCheck (long "noanalysis" <> hidden <> help "Do not analyse PKGBUILDs for security flaws.")
         asd = flag' AsDeps (long "asdeps" <> hidden <> help "All installed packages will be marked as dependencies.")
         sdc = flag' SkipDepCheck (long "skipdepcheck" <> hidden <> help "Don't perform dependency solving.")
+        dbd = flag' DeleteBuildDir (long "clean" <> short 'c' <> hidden <> help "Delete each package's build directory after building.")
 
 commonConfig :: Parser CommonConfig
 commonConfig = CommonConfig <$> cap <*> cop <*> lfp <*> commonSwitches
diff --git a/lib/Aura/Build.hs b/lib/Aura/Build.hs
--- a/lib/Aura/Build.hs
+++ b/lib/Aura/Build.hs
@@ -97,7 +97,7 @@
   buildDir <- liftIO $ getBuildDir b
   createDirectoryIfMissing True buildDir
   setCurrentDirectory buildDir
-  runExceptT $ do
+  r <- runExceptT $ do
     bs <- ExceptT $ do
       let !dir = buildDir </> T.unpack (pnName $ bName b)
       pulled <- doesDirectoryExist dir
@@ -114,6 +114,10 @@
       else do
         pNames <- ExceptT . liftIO . fmap (fmap NEL.toList) $ makepkg ss usr
         liftIO $ traverse (moveToCachePath ss) pNames
+  when (switch ss DeleteBuildDir) $ do
+    logDebug . fromString $ "Deleting build directory: " <> buildDir
+    removeDirectoryRecursive buildDir
+  pure r
 
 getBuildDir :: Buildable -> IO FilePath
 getBuildDir b
diff --git a/lib/Aura/MakePkg.hs b/lib/Aura/MakePkg.hs
--- a/lib/Aura/MakePkg.hs
+++ b/lib/Aura/MakePkg.hs
@@ -90,4 +90,4 @@
 
 -- | As of makepkg v4.2, building with `--asroot` is no longer allowed.
 runStyle :: User -> [String] -> (FilePath, [String])
-runStyle (User usr) opts = ("sudo", ["-E", "-u", T.unpack usr, makepkgCmd] <> opts)
+runStyle (User usr) opts = ("sudo", ["-u", T.unpack usr, makepkgCmd] <> opts)
diff --git a/lib/Aura/Settings.hs b/lib/Aura/Settings.hs
--- a/lib/Aura/Settings.hs
+++ b/lib/Aura/Settings.hs
@@ -116,19 +116,21 @@
 vcsPathOfL f bc = (\pth -> bc { vcsPathOf = pth }) <$> f (vcsPathOf bc)
 
 -- | Extra options for customizing the build process.
-data BuildSwitch = DeleteMakeDeps
-                 | DiffPkgbuilds
-                 | DontSuppressMakepkg
-                 | DryRun
-                 | HotEdit
-                 | LowVerbosity
-                 | RebuildDevel
-                 | SortAlphabetically  -- For `-As`
-                 | ForceBuilding
-                 | NoPkgbuildCheck
-                 | AsDeps
-                 | SkipDepCheck
-                 deriving (Eq, Ord, Show)
+data BuildSwitch
+  = AsDeps
+  | DeleteBuildDir
+  | DeleteMakeDeps
+  | DiffPkgbuilds
+  | DontSuppressMakepkg
+  | DryRun
+  | ForceBuilding
+  | HotEdit
+  | LowVerbosity
+  | NoPkgbuildCheck
+  | RebuildDevel
+  | SkipDepCheck
+  | SortAlphabetically  -- For `-As`
+  deriving (Eq, Ord, Show)
 
 -- | Is some Aura-specific setting turned on for this run?
 switch :: Settings -> BuildSwitch -> Bool
