diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Changelog for shake-language-c
 
+## [v0.6.4][]
+
+* Fix Android toolchain definition for `x86` architecture
+
 ## [v0.6.3][]
 
 ### Changed
@@ -36,6 +40,7 @@
 
 First released version.
 
+[v0.6.4]: https://github.com/samplecount/shake-language-c/tree/v0.6.4
 [v0.6.3]: https://github.com/samplecount/shake-language-c/tree/v0.6.3
 [v0.6.2]: https://github.com/samplecount/shake-language-c/tree/v0.6.2
 [v0.6.1]: https://github.com/samplecount/shake-language-c/tree/v0.6.1
diff --git a/shake-language-c.cabal b/shake-language-c.cabal
--- a/shake-language-c.cabal
+++ b/shake-language-c.cabal
@@ -13,7 +13,7 @@
 -- limitations under the License.
 
 Name:         shake-language-c
-Version:      0.6.3
+Version:      0.6.4
 Synopsis:     Utilities for cross-compiling with Shake
 Description:  This library provides <http://hackage.haskell.org/package/shake Shake> utilities for cross-compiling @C@, @C++@ and @ObjC@ code for various target platforms. Currently supported target platforms are Android, iOS, Linux, MacOS X, Windows\/MinGW and Google Portable Native Client (PNaCl). Supported host platforms are MacOS X, Linux and Windows.
 Category:     Development
diff --git a/src/Development/Shake/Language/C/Target/Android.hs b/src/Development/Shake/Language/C/Target/Android.hs
--- a/src/Development/Shake/Language/C/Target/Android.hs
+++ b/src/Development/Shake/Language/C/Target/Android.hs
@@ -48,6 +48,12 @@
         Arm _ -> "arm-linux-androideabi-"
         arch  -> unsupportedArch arch
 
+toolPrefix_ :: Target -> String
+toolPrefix_ x =
+  case targetArch x of
+    X86 _ -> "i686-linux-android-"
+    _     -> toolChainPrefix x
+
 osPrefix :: String
 osPrefix = System.os ++ "-" ++ cpu
     where cpu = case System.arch of
@@ -102,6 +108,13 @@
 sdkVersion :: Int -> Version
 sdkVersion n = Version [n] []
 
+gccToolChain :: FilePath -> Target -> Version -> FilePath
+gccToolChain ndk target version =
+  ndk </> "toolchains"
+      </> toolChainPrefix target ++ showVersion version
+      </> "prebuilt"
+      </> osPrefix
+
 -- | Construct an Android toolchain.
 toolChain :: FilePath                     -- ^ NDK source directory
           -> Version                      -- ^ SDK version, see `sdkVersion`
@@ -111,12 +124,8 @@
 toolChain "" _ (_, _) _ = error "Empty NDK directory"
 toolChain ndk version (GCC, tcVersion) t =
     set variant GCC
-  $ set toolDirectory (Just (ndk </> "toolchains"
-                                 </> toolChainPrefix t ++ showVersion tcVersion
-                                 </> "prebuilt"
-                                 </> osPrefix
-                                 </> "bin"))
-  $ set toolPrefix (toolChainPrefix t)
+  $ set toolDirectory (Just (gccToolChain ndk t tcVersion </> "bin"))
+  $ set toolPrefix (toolPrefix_ t)
   $ set compilerCommand "gcc"
   $ set archiverCommand "ar"
   $ set linkerCommand "g++"
@@ -133,8 +142,8 @@
   $ set archiverCommand "llvm-ar"
   $ set linkerCommand "clang++"
   $ set defaultBuildFlags (return $
-    let gcc_toolchain = ndk </> "toolchains/arm-linux-androideabi-4.8/prebuilt" </> osPrefix
-        flags = ["-target", llvmTarget t, "-gcc-toolchain", gcc_toolchain]
+    let flags = [ "-target", llvmTarget t
+                , "-gcc-toolchain", gccToolChain ndk t (Version [4,8] []) ]
     in  mkDefaultBuildFlags ndk version (targetArch t)
       . append compilerFlags [(Nothing, flags)]
       . append linkerFlags flags
