diff --git a/README.md b/README.md
index e5818ffcab9b3da521628cde190de810ba8c965a..6c19be9aa11a8b0da625efc24cc38f6c36972f4d 100644
--- a/README.md
+++ b/README.md
@@ -5,7 +5,7 @@ Ethereum
 
 Ethereum Go Client © 2014 Jeffrey Wilcke.
 
-Current state: Proof of Concept 5.0 RC8.
+Current state: Proof of Concept 5.0 RC9.
 
 For the development package please see the [eth-go package](https://github.com/ethereum/eth-go).
 
diff --git a/ethereal/assets/qml/wallet.qml b/ethereal/assets/qml/wallet.qml
index dee31a04e51221eec1c32811e874e48e01c22da6..7a6750f63bd5e4dbba1636ae3a47ba781ebf6b2c 100644
--- a/ethereal/assets/qml/wallet.qml
+++ b/ethereal/assets/qml/wallet.qml
@@ -86,7 +86,6 @@ ApplicationWindow {
 			//color: "#D9DDE7"
 			color: "#252525"
 
-
 			ColumnLayout {
 				y: 50
 				anchors.left: parent.left
@@ -156,6 +155,7 @@ ApplicationWindow {
 				TableView {
 					id: txTableView
 					anchors.fill: parent
+					TableViewColumn{ role: "inout" ; title: "" ; width: 40 }
 					TableViewColumn{ role: "value" ; title: "Value" ; width: 100 }
 					TableViewColumn{ role: "address" ; title: "Address" ; width: 430 }
 					TableViewColumn{ role: "contract" ; title: "Contract" ; width: 100 }
@@ -405,7 +405,7 @@ ApplicationWindow {
 			anchors.left: aboutIcon.right
 			anchors.leftMargin: 10
 			font.pointSize: 12
-			text: "<h2>Ethereal</h2><br><h3>Development</h3>Jeffrey Wilcke<br>Maran Hidskes<br><h3>Binary Distribution</h3>Jarrad Hope<br>"
+			text: "<h2>Ethereal</h2><br><h3>Development</h3>Jeffrey Wilcke<br>Maran Hidskes<br>"
 		}
 
 	}
@@ -430,7 +430,6 @@ ApplicationWindow {
 			}
 		}
 		SplitView {
-
 			anchors.fill: parent
 			property var asmModel: ListModel {
 				id: asmModel
@@ -525,14 +524,14 @@ ApplicationWindow {
 		walletValueLabel.text = value
 	}
 
-	function addTx(tx) {
+	function addTx(tx, inout) {
 		var isContract
 		if (tx.contract == true){
 			isContract = "Yes"
 		}else{
 			isContract = "No"
 		}
-		txModel.insert(0, {hash: tx.hash, address: tx.address, value: tx.value, contract: isContract})
+		txModel.insert(0, {inout: inout, hash: tx.hash, address: tx.address, value: tx.value, contract: isContract})
 	}
 
 	function addBlock(block) {
diff --git a/ethereal/ui/gui.go b/ethereal/ui/gui.go
index 7290bd6ec4ec97c2ef17a98627495897fc28956b..8d6796ddbb7f5e502a2acbc6ed43002417fc855f 100644
--- a/ethereal/ui/gui.go
+++ b/ethereal/ui/gui.go
@@ -9,7 +9,6 @@ import (
 	"github.com/ethereum/eth-go/ethpub"
 	"github.com/ethereum/eth-go/ethutil"
 	"github.com/go-qml/qml"
-	"github.com/obscuren/mutan"
 	"math/big"
 	"strings"
 )
@@ -55,7 +54,7 @@ func New(ethereum *eth.Ethereum) *Gui {
 }
 
 func (gui *Gui) Start(assetPath string) {
-	const version = "0.5.0 RC8"
+	const version = "0.5.0 RC9"
 
 	defer gui.txDb.Close()
 
@@ -152,7 +151,15 @@ func (gui *Gui) readPreviousTransactions() {
 	for it.Next() {
 		tx := ethchain.NewTransactionFromBytes(it.Value())
 
-		gui.win.Root().Call("addTx", ethpub.NewPTx(tx))
+		var inout string
+		if bytes.Compare(tx.Sender(), gui.addr) == 0 {
+			inout = "send"
+		} else {
+			inout = "recv"
+		}
+
+		gui.win.Root().Call("addTx", ethpub.NewPTx(tx), inout)
+
 	}
 	it.Release()
 }
@@ -208,12 +215,12 @@ func (gui *Gui) update() {
 				object := state.GetAccount(gui.addr)
 
 				if bytes.Compare(tx.Sender(), gui.addr) == 0 {
-					gui.win.Root().Call("addTx", ethpub.NewPTx(tx))
+					gui.win.Root().Call("addTx", ethpub.NewPTx(tx), "send")
 					gui.txDb.Put(tx.Hash(), tx.RlpEncode())
 
 					unconfirmedFunds.Sub(unconfirmedFunds, tx.Value)
 				} else if bytes.Compare(tx.Recipient, gui.addr) == 0 {
-					gui.win.Root().Call("addTx", ethpub.NewPTx(tx))
+					gui.win.Root().Call("addTx", ethpub.NewPTx(tx), "recv")
 					gui.txDb.Put(tx.Hash(), tx.RlpEncode())
 
 					unconfirmedFunds.Add(unconfirmedFunds, tx.Value)
@@ -262,7 +269,5 @@ func (gui *Gui) Transact(recipient, value, gas, gasPrice, data string) (*ethpub.
 func (gui *Gui) Create(recipient, value, gas, gasPrice, data string) (*ethpub.PReceipt, error) {
 	keyPair := ethutil.GetKeyRing().Get(0)
 
-	mainInput, initInput := mutan.PreParse(data)
-
-	return gui.pub.Create(ethutil.Hex(keyPair.PrivateKey), value, gas, gasPrice, initInput, mainInput)
+	return gui.pub.Create(ethutil.Hex(keyPair.PrivateKey), value, gas, gasPrice, data)
 }
diff --git a/ethereal/ui/ui_lib.go b/ethereal/ui/ui_lib.go
index 0c43f1675b4538ee5205943b0321ee42552e87ae..1c88b018188f7fa00940bb6981c50f9f9ecd919e 100644
--- a/ethereal/ui/ui_lib.go
+++ b/ethereal/ui/ui_lib.go
@@ -135,7 +135,7 @@ func (ui *UiLib) DebugTx(recipient, valueStr, gasStr, gasPriceStr, data string)
 	for _, str := range dis {
 		ui.win.Root().Call("setAsm", str)
 	}
-	callerTx := ethchain.NewContractCreationTx(ethutil.Big(valueStr), ethutil.Big(gasStr), ethutil.Big(gasPriceStr), callerScript, nil)
+	callerTx := ethchain.NewContractCreationTx(ethutil.Big(valueStr), ethutil.Big(gasStr), ethutil.Big(gasPriceStr), nil)
 
 	// Contract addr as test address
 	keyPair := ethutil.GetKeyRing().Get(0)
diff --git a/ethereum/config.go b/ethereum/config.go
index f39f3b7da1c6dc95512c4b2173931a89f51b4828..5da910f2bda1ef1ee6cf91164f497adc7d279225 100644
--- a/ethereum/config.go
+++ b/ethereum/config.go
@@ -31,7 +31,7 @@ func Init() {
 		flag.PrintDefaults()
 	}
 
-	flag.StringVar(&Identifier, "i", "", "Custom client identifier")
+	flag.StringVar(&Identifier, "i", "", "custom client identifier")
 	flag.BoolVar(&StartMining, "m", false, "start dagger mining")
 	flag.BoolVar(&ShowGenesis, "g", false, "prints genesis header and exits")
 	flag.BoolVar(&StartRpc, "r", false, "start rpc server")
@@ -47,7 +47,6 @@ func Init() {
 	flag.StringVar(&ImportKey, "import", "", "imports the given private key (hex)")
 	flag.IntVar(&MaxPeer, "x", 10, "maximum desired peers")
 	flag.BoolVar(&StartJsConsole, "js", false, "exp")
-	//flag.StringVar(&InputFile, "e", "", "Run javascript file")
 
 	flag.Parse()
 
diff --git a/ethereum/repl.go b/ethereum/repl.go
index d1243d19c2a5bc782e1f53171b0857ee36a445f0..10f51675eb568edba376c0ce9a4ae7963b134789 100644
--- a/ethereum/repl.go
+++ b/ethereum/repl.go
@@ -48,13 +48,22 @@ func (self *JSRepl) parseInput(code string) {
 
 // The JSEthereum object attempts to wrap the PEthereum object and returns
 // meaningful javascript objects
+type JSBlock struct {
+	*ethpub.PBlock
+	eth *JSEthereum
+}
+
+func (self *JSBlock) GetTransaction(hash string) otto.Value {
+	return self.eth.toVal(self.PBlock.GetTransaction(hash))
+}
+
 type JSEthereum struct {
 	*ethpub.PEthereum
 	vm *otto.Otto
 }
 
 func (self *JSEthereum) GetBlock(hash string) otto.Value {
-	return self.toVal(self.PEthereum.GetBlock(hash))
+	return self.toVal(&JSBlock{self.PEthereum.GetBlock(hash), self})
 }
 
 func (self *JSEthereum) GetKey() otto.Value {
@@ -76,8 +85,8 @@ func (self *JSEthereum) Transact(key, recipient, valueStr, gasStr, gasPriceStr,
 	return self.toVal(r)
 }
 
-func (self *JSEthereum) Create(key, valueStr, gasStr, gasPriceStr, initStr, bodyStr string) otto.Value {
-	r, err := self.PEthereum.Create(key, valueStr, gasStr, gasPriceStr, initStr, bodyStr)
+func (self *JSEthereum) Create(key, valueStr, gasStr, gasPriceStr, scriptStr string) otto.Value {
+	r, err := self.PEthereum.Create(key, valueStr, gasStr, gasPriceStr, scriptStr)
 
 	if err != nil {
 		fmt.Println(err)
diff --git a/ethereum/repl_darwin.go b/ethereum/repl_darwin.go
index fa36b0d526de11eaeb068990141ad286344687a9..b61d4edd7eaa5133bef798067db2f12ed3ab211f 100644
--- a/ethereum/repl_darwin.go
+++ b/ethereum/repl_darwin.go
@@ -102,7 +102,7 @@ L:
 					break L
 				}
 
-				addHistory(str) //allow user to recall this line
+				addHistory(str[:len(str)-1]) //allow user to recall this line
 
 				self.parseInput(str)