--- /dev/null
+--- main.cpp 2012-05-24 01:24:54.000000000 +0400
++++ main.cpp.orig 2012-05-08 21:34:24.000000000 +0400
+@@ -3222,21 +3222,18 @@
+
+ // Size limits
+ unsigned int nTxSize = ::GetSerializeSize(tx, SER_NETWORK, PROTOCOL_VERSION);
+- //if (nBlockSize + nTxSize >= MAX_BLOCK_SIZE_GEN)
+- // continue;
++ if (nBlockSize + nTxSize >= MAX_BLOCK_SIZE_GEN)
++ continue;
+
+ // Legacy limits on sigOps:
+ unsigned int nTxSigOps = tx.GetLegacySigOpCount();
+- //if (nBlockSigOps + nTxSigOps >= MAX_BLOCK_SIGOPS)
+- // continue;
++ if (nBlockSigOps + nTxSigOps >= MAX_BLOCK_SIGOPS)
++ continue;
+
+ // Transaction fee required depends on block size
+ bool fAllowFree = (nBlockSize + nTxSize < 4000 || CTransaction::AllowFree(dPriority));
+ int64 nMinFee = tx.GetMinFee(nBlockSize, fAllowFree, GMF_BLOCK);
+
+- // Electrum server: do not check fees
+- nMinFee = 0;
+-
+ // Connecting shouldn't fail due to dependency on other memory pool transactions
+ // because we're already processing them in order of dependency
+ map<uint256, CTxIndex> mapTestPoolTmp(mapTestPool);
+--- bitcoinrpc.cpp 2012-06-10 20:54:28.000000000 +0400
++++ bitcoinrpc.cpp.orig 2012-05-08 21:34:23.000000000 +0400
+@@ -1496,45 +1496,7 @@
+ return entry;
+ }
+
+-Value importtransaction(const Array& params, bool fHelp)
+-{
+- string hexdump;
+- if (fHelp || params.size() != 1 || (hexdump=params[0].get_str()).size()&1)
+- throw runtime_error(
+- "importtransaction <hexdata>\n"
+- "Import an offline transaction to announce it into the network");
+-
+- std::vector<unsigned char> rawtx;
+- for (int i=0; i<hexdump.size(); i+=2)
+- {
+- int v;
+- if (sscanf(hexdump.substr(i,2).c_str(), "%x", &v)!=1)
+- throw JSONRPCError(-4, "Error in hex data.");
+- rawtx.push_back((unsigned char)v);
+- }
+-try
+- {
+- CDataStream ss(rawtx, SER_NETWORK, PROTOCOL_VERSION);
+- CTransaction tx;
+- ss >> tx;
+- CInv inv(MSG_TX, tx.GetHash());
+-
+- CTxDB txdb("r");
+- if(! tx.AcceptToMemoryPool(txdb, true)) throw JSONRPCError(-4, "Transaction not accepted to memory pool.");
+- CDataStream msg(rawtx, SER_NETWORK, PROTOCOL_VERSION);
+- RelayMessage(inv, msg);
+- return tx.GetHash().GetHex();
+- }
+- catch (std::exception& e)
+- {
+- throw JSONRPCError(-4, "Exception while parsing the transaction data.");
+- }
+-
+-}
+-
+-
+
+-
+ Value backupwallet(const Array& params, bool fHelp)
+ {
+ if (fHelp || params.size() != 1)
+@@ -2093,7 +2055,6 @@
+ { "listsinceblock", &listsinceblock, false },
+ { "dumpprivkey", &dumpprivkey, false },
+ { "importprivkey", &importprivkey, false },
+- { "importtransaction", &importtransaction, false },
+ };
+
+ CRPCTable::CRPCTable()