$? is still correctly populated, even if assigned to a variable.

```1.8.7-p371 :012 > a = %x{ls}
 => "COMMITTERS.md\nCONTRIBUTING.md\nGemfile\nLICENSE\nREADME.md\nREADME_DEVELOPER.md\nRakefile\nacceptance\nautotest\nbin\nconf\nexamples\next\ninstall.rb\nlib\nman\npkg\nspec\ntasks\nyardoc\n"
1.8.7-p371 :013 > puts $?.success?
true```

```1.8.7-p371 :007 > a = %x{ls adsad}
ls: adsad: No such file or directory
 => ""
1.8.7-p371 :008 > puts $?.success?
false```