diff --git a/beem/cli.py b/beem/cli.py
index 4de008cb8c4697b6d00a90a09cf67d04c9de3c01..e19d1d3cf888218fdce44e4e25043acc46b3b7d8 100644
--- a/beem/cli.py
+++ b/beem/cli.py
@@ -13,6 +13,7 @@ from beem.comment import Comment
 from beem.market import Market
 from beem.block import Block
 from beem.profile import Profile
+from beem.asset import Asset
 from beem.witness import Witness, WitnessesRankedByVote, WitnessesVotedByAccount
 from beem.blockchain import Blockchain
 from beem.utils import formatTimeString
@@ -981,16 +982,21 @@ def buy(amount, asset, price, account, orderid):
         Limit buy price denoted in (SBD per STEEM)
     """
     stm = shared_steem_instance()
-    market = Market(steem_instance=stm)
     if not account:
         account = stm.config["default_account"]
+    if asset == "SBD":
+        market = Market(base=Asset("STEEM"), quote=Asset("SBD"), steem_instance=stm)
+    else:
+        market = Market(base=Asset("SBD"), quote=Asset("STEEM"), steem_instance=stm)
     if not price:
         orderbook = market.orderbook(limit=1, raw_data=False)
         if asset == "STEEM" and len(orderbook["bids"]) > 0:
             p = Price(orderbook["bids"][0]["base"], orderbook["bids"][0]["quote"], steem_instance=stm).invert()
+            p_show = p
         else:
             p = Price(orderbook["asks"][0]["base"], orderbook["asks"][0]["quote"], steem_instance=stm).invert()
-        price_ok = click.prompt("Is the following Price ok: %s [y/n]" % (str(p)))
+            p_show = p
+        price_ok = click.prompt("Is the following Price ok: %s [y/n]" % (str(p_show)))
         if price_ok not in ["y", "ye", "yes"]:
             return
     else:
@@ -1017,16 +1023,21 @@ def sell(amount, asset, price, account, orderid):
         Limit sell price denoted in (SBD per STEEM)
     """
     stm = shared_steem_instance()
-    market = Market(steem_instance=stm)
+    if asset == "SBD":
+        market = Market(base=Asset("STEEM"), quote=Asset("SBD"), steem_instance=stm)
+    else:
+        market = Market(base=Asset("SBD"), quote=Asset("STEEM"), steem_instance=stm)
     if not account:
         account = stm.config["default_account"]
     if not price:
         orderbook = market.orderbook(limit=1, raw_data=False)
         if asset == "SBD" and len(orderbook["bids"]) > 0:
             p = Price(orderbook["bids"][0]["base"], orderbook["bids"][0]["quote"], steem_instance=stm).invert()
+            p_show = p
         else:
             p = Price(orderbook["asks"][0]["base"], orderbook["asks"][0]["quote"], steem_instance=stm).invert()
-        price_ok = click.prompt("Is the following Price ok: %s [y/n]" % (str(p)))
+            p_show = p
+        price_ok = click.prompt("Is the following Price ok: %s [y/n]" % (str(p_show)))
         if price_ok not in ["y", "ye", "yes"]:
             return
     else:
diff --git a/beem/market.py b/beem/market.py
index b0b44705772b8fe0f8906e30e9b61cda44034b82..eca567965c42bc19ad0253ad51c786460e5458a0 100644
--- a/beem/market.py
+++ b/beem/market.py
@@ -19,9 +19,9 @@ import random
 class Market(dict):
     """ This class allows to easily access Markets on the blockchain for trading, etc.
 
-        :param steem.steem.Steem steem_instance: Steem instance
-        :param steem.asset.Asset base: Base asset
-        :param steem.asset.Asset quote: Quote asset
+        :param beem.steem.Steem steem_instance: Steem instance
+        :param beem.asset.Asset base: Base asset
+        :param beem.asset.Asset quote: Quote asset
         :returns: Blockchain Market
         :rtype: dictionary with overloaded methods
 
@@ -50,14 +50,20 @@ class Market(dict):
     def __init__(
         self,
         steem_instance=None,
+        *args,
+        **kwargs
     ):
         """
         Init Market
+
+            :param beem.steem.Steem steem_instance: Steem instance
+            :param beem.asset.Asset base: Base asset
+            :param beem.asset.Asset quote: Quote asset
         """
         self.steem = steem_instance or shared_steem_instance()
+        base = kwargs.get("base", Asset("SBD", steem_instance=self.steem))
+        quote = kwargs.get("quote", Asset("STEEM", steem_instance=self.steem))
 
-        quote = Asset("STEEM", steem_instance=self.steem)
-        base = Asset("SBD", steem_instance=self.steem)
         super(Market, self).__init__({"base": base, "quote": quote})
 
     def get_string(self, separator=":"):
diff --git a/tests/beem/test_cli.py b/tests/beem/test_cli.py
index a31b6addc726badb0d321ce6c8ae72069b407f38..6891a25046f25ddaa4828ec0751225e64187fb4f 100644
--- a/tests/beem/test_cli.py
+++ b/tests/beem/test_cli.py
@@ -265,13 +265,21 @@ class Testcases(unittest.TestCase):
         self.assertEqual(result.exit_code, 0)
         result = runner.invoke(cli, ['-d', 'buy', '1', 'STEEM'], input="y\ntest\n")
         self.assertEqual(result.exit_code, 0)
+        result = runner.invoke(cli, ['-d', 'buy', '1', 'SBD', '2.2'], input="test\n")
+        self.assertEqual(result.exit_code, 0)
+        result = runner.invoke(cli, ['-d', 'buy', '1', 'SBD'], input="y\ntest\n")
+        self.assertEqual(result.exit_code, 0)
 
     def test_sell(self):
         runner = CliRunner()
         result = runner.invoke(cli, ['-d', 'sell', '1', 'STEEM', '2.2'], input="test\n")
         self.assertEqual(result.exit_code, 0)
+        result = runner.invoke(cli, ['-d', 'sell', '1', 'SBD', '2.2'], input="test\n")
+        self.assertEqual(result.exit_code, 0)
         result = runner.invoke(cli, ['-d', 'sell', '1', 'STEEM'], input="y\ntest\n")
         self.assertEqual(result.exit_code, 0)
+        result = runner.invoke(cli, ['-d', 'sell', '1', 'SBD'], input="y\ntest\n")
+        self.assertEqual(result.exit_code, 0)
 
     def test_cancel(self):
         runner = CliRunner()