diff --git a/check_ping_multiaddr.py b/check_ping_multiaddr.py
index 1a297dc4e398662e10805c69bc8e9d45ea4241d1..73e886242c299256df68bd2d679572d797e7bf59 100755
--- a/check_ping_multiaddr.py
+++ b/check_ping_multiaddr.py
@@ -56,6 +56,10 @@ class Options(optparse.OptionParser):
             help=("Check all addresses each hostname resolves to."
                   " By default, only the first address for each host is"
                   " checked."))
+        self.add_option(
+            '-r', '--retries', action='store', type='int', default=9,
+            help=("Number of ICMP ECHO retries to send [default: %default]."
+                  " Must be in the range 1 <= RETRIES <= 20."))
         self.add_option(
             '-d', '--debug', action='count', default=0,
             help=("Increase debug level [default: %default]."))
@@ -72,6 +76,9 @@ class Options(optparse.OptionParser):
             self.error("At least one IP address is required")
         if not values.ipv4 and not values.ipv6:
             self.error("At least one IP version must be specified (-4, -6)")
+        if values.retries < 1 or values.retries > 20:
+            self.error(
+                "Retries (-r) must be in range 1 <= RETRIES <= 20")
         return values,args
 
     def exit(self, status=0, msg=None):
@@ -175,11 +182,12 @@ def ping_addresses(addresses):
         6: ['fping6'],
     }
     fpingflags = [
-        # These settings gives ca 5 seconds timeout for unreachable addresses
+        # These settings, with default 9 retries, gives ca 5 seconds timeout
+        # for unreachable addresses
         '-i10',         # -i10 is the fastest fping allows without being root
         '-t250',
         '-B1.125',
-        '-r9',
+        '-r%d' % (OPTIONS.retries,),
     ]
     all_output = []
     for ipver,addrs in addresses.items():