diff --git a/update-record.py b/update-record.py
index 89ec598..73abf0f 100755
--- a/update-record.py
+++ b/update-record.py
@@ -9,6 +9,15 @@
 import argparse
 
 
+def errorCheck(ret):
+	if (ret['code'] != 1000):
+		raise RuntimeError('[ERROR] Code: ' + str(ret['code']) + ' Message: ' + ret['msg'])
+	# end if
+
+	return ret
+# end errorCheck
+
+
 def main(args):
 	verbose = args.verbose
 	domain = args.domain
@@ -33,63 +42,56 @@
 		debug_mode = True
 		api_url = ApiClient.API_OTE_URL
 	api_client = ApiClient(api_url=api_url, debug_mode=debug_mode)
-	ret = api_client.login(username, password)
-	if (ret['code'] != 1000):
-		raise RuntimeError('Api login error. Code: ' + str(ret['code']) + '  Message: ' + ret['msg'])
+	ret = errorCheck(api_client.login(username, password))
 	if (verbose):
-		print("login: ", ret)
+		print("login:", ret)
 
 
 	# check domain
-	ret = api_client.call_api(api_method='nameserver.list', method_params={'domain': domain})
+	ret = errorCheck(api_client.call_api(api_method='nameserver.list', method_params={'domain': domain}))
 	if (verbose):
-		print('list: ', ret)
-	if (ret['code'] != 1000):
-		raise RuntimeError('Api call error. Code: ' + str(ret['code']) + '  Message: ' + ret['msg'])
+		print('list:', ret)
 	if (ret['resData']['count'] == 0):
 		raise RuntimeError("You are not user of this domain.")
 
 
 	# looking if subdomain exists
-	subId = -1
-	ret = api_client.call_api(api_method='nameserver.info', method_params={'domain': domain})
-	if (ret['code'] != 1000):
-		raise RuntimeError('Api call error. Code: ' + str(ret['code']) + '  Message: ' + ret['msg'])
+	ret = errorCheck(api_client.call_api(api_method='nameserver.info', method_params={'domain': domain}))
 	records = ret['resData']['record']
 
-	for r in records:
-		if (r['name'] == args.domain and r['type'] == args.record_type):
-			subId = r['id']
-			if (verbose):
-				print(r)
-			break
-		# end if
-	# end for
+	content = str(args.content)
+	if (args.delete or args.update):
+		recordFound = False
+		for r in records:
+			if (r['name'] == args.domain and r['type'] == args.record_type):
+				recordFound = True
+				if (verbose):
+					print('entry:', r)
 
-	if (args.delete):
-		if (subId >= 0):
-			if (verbose):
-				print ("delete id: ", subId)
-			ret = api_client.call_api(api_method='nameserver.deleteRecord', method_params={'id': subId})
-			if (ret['code'] != 1000):
-				raise RuntimeError('Api call error. Code: ' + str(ret['code']) + '  Message: ' + ret['msg'])
-		else:
-			ret = None
-		# end if
+				# delete entry
+				if (args.delete):
+					# if content is not none: delete only entry with given content.
+					if (args.content != None and r['content'] != content):
+						continue
+
+					ret = errorCheck(api_client.call_api(api_method='nameserver.deleteRecord', method_params={'id': r['id']}))
+					if (verbose):
+						print('delete:', ret)
+				# update entry
+				elif (args.update):
+					ret = errorCheck(api_client.call_api(api_method='nameserver.updateRecord', method_params={'id': r['id'], 'type': args.record_type, 'content': content, 'ttl': args.ttl}))
+					if (verbose):
+						print('update:', ret)
+				# end if
+			# end if
+		# end for
+
+		if (not recordFound):
+			raise RuntimeError('No entry available for updating or deleting.')
 	else:
-		if (not args.update or subId < 0):
-			ret = api_client.call_api(api_method='nameserver.createRecord', method_params={'domain': domain, 'name': sub, 'type': args.record_type, 'content': str(args.content), 'ttl': args.ttl})
-			if (ret['code'] != 1000):
-				raise RuntimeError('Api call error. Code: ' + str(ret['code']) + '  Message: ' + ret['msg'])
-			if (verbose):
-				print('create: ', ret)
-		else:
-			ret = api_client.call_api(api_method='nameserver.updateRecord', method_params={'id': subId, 'type': args.record_type, 'content': str(args.content), 'ttl': args.ttl})
-			if (ret['code'] != 1000):
-				raise RuntimeError('Api call error. Code: ' + str(ret['code']) + '  Message: ' + ret['msg'])
-			if (verbose):
-				print('update: ', ret)
-		# end if
+		ret = errorCheck(api_client.call_api(api_method='nameserver.createRecord', method_params={'domain': domain, 'name': sub, 'type': args.record_type, 'content': content, 'ttl': args.ttl}))
+		if (verbose):
+			print('create:', ret)
 	# end if
 
 	api_client.logout()
@@ -101,15 +103,14 @@
 	parser = argparse.ArgumentParser(description='inwx subdomain update')
 
 	parser.add_argument('domain', metavar='domain', help='full domain like subdomain.example.com')
-	parser.add_argument('content', metavar='content', nargs='?', default=None, help='ip or string to fill into sub domain entry')
+	parser.add_argument('content', metavar='content', nargs='?', default=None, help='ip or string to fill/update into subdomain domain entry')
 	parser.add_argument('-r', '--record-type', metavar='type', required=True, choices=['A', 'AAAA', 'TXT', 'CNAME', 'TLSA'], help='record type (A, AAAA, TXT, CNAME, TLSA)')
-	parser.add_argument('--delete', action='store_true', required=False, help='delete existing record')
-	parser.add_argument('-u', '--update', action='store_true', required=False, help='update existing record if it exists')
+	parser.add_argument('--delete', action='store_true', required=False, help='delete existing record with given content, or delete all records if no content is given')
+	parser.add_argument('-u', '--update', action='store_true', required=False, help='update all existing records if one exists, otherwise fails')
 
 	parser.add_argument('-c', '--config_file', metavar='path', default='./conf.cfg', help='path to configuration file')
 	parser.add_argument('-t', '--ttl', default=3600, type=int, help='TTL (time to live) of the nameserver record in seconds (default 3600)')
 	parser.add_argument('-s', '--config_section', metavar='section', default='live', choices=['live', 'ote'], help='configuration section (live, ote) default: live')
-	parser.add_argument('-l', '--language', metavar='lang', default='en', choices=['de', 'en'], help='answer language (de, en)')
 	parser.add_argument('-v', '--verbose', action='store_true', help='verbose')
 	parser.add_argument('-d', '--debug', action='store_true', help='debug')