diff -urd smokeping-1.38.orig/lib/probes/FPing.pm smokeping-1.38/lib/probes/FPing.pm
--- smokeping-1.38.orig/lib/probes/FPing.pm	2005-01-05 00:35:13.000000000 +0200
+++ smokeping-1.38/lib/probes/FPing.pm	2005-04-07 19:49:53.500449762 +0300
@@ -10,6 +10,7 @@
  + FPing
  binary = /usr/sepp/bin/fping
  packetsize = 1024
+ source = 1.2.3.4
 
 =head1 DESCRIPTION
 
@@ -28,6 +29,9 @@
 datagram size (64K), though most systems limit this to a smaller,
 system-dependent number.
 
+The (optional) B<source> option lets you configure the source IP address
+for the pings sent.
+
 =head1 AUTHOR
 
 Tobias Oetiker <tobi@oetiker.ch>
@@ -90,9 +94,11 @@
     # pinging nothing is pointless
     return unless @{$self->addresses};
     my @bytes = () ;
+    my @source = ();
     push @bytes, "-b$self->{properties}{packetsize}" if $self->{properties}{packetsize};
+    push @source, "-I $self->{properties}{source}" if $self->{properties}{source};
     my @cmd = (
-                    $self->{properties}{binary}, @bytes,
+                    $self->{properties}{binary}, @bytes, @source,
                     '-C', $self->pings, '-q','-B1','-i10','-r1',
                     @{$self->addresses});
     $self->do_debug("Executing @cmd");
diff -urd smokeping-1.38.orig/lib/probes/RemoteFPing.pm smokeping-1.38/lib/probes/RemoteFPing.pm
--- smokeping-1.38.orig/lib/probes/RemoteFPing.pm	2005-01-05 00:39:26.000000000 +0200
+++ smokeping-1.38/lib/probes/RemoteFPing.pm	2005-04-07 19:48:50.014541766 +0300
@@ -10,6 +10,7 @@
  + RemoteFPing
  binary = /usr/bin/ssh
  packetsize = 1024
+ source = 1.2.3.4
  rhost = HostA.foobar.com
  ruser = foo
  rbinary = /usr/local/sbin/fping
@@ -40,6 +41,9 @@
 The (optional) B<packetsize> option lets you configure the packetsize
 for the pings sent.
 
+The (optional) B<source> option lets you configure the source IP address
+for the pings sent.
+
 The B<rhost> option specifies the remote device from where fping will
 be launched.
 
@@ -126,8 +130,10 @@
     # pinging nothing is pointless
     return unless @{$self->addresses};
     my @bytes = ();
+    my @source = ();
 
     push @bytes, "-b$self->{properties}{packetsize}" if $self->{properties}{packetsize};
+    push @source, "-I $self->{properties}{source}" if $self->{properties}{source};
 
     my @rargs;
     for my $what (qw(ruser rhost rbinary)) {
@@ -137,7 +143,7 @@
     	} 
     }
 
-    my $query = "$self->{properties}{binary} @rargs @bytes -C " . $self->pings . " -q -B1 -i10 -r1 @{$self->addresses}";
+    my $query = "$self->{properties}{binary} @rargs @bytes @source -C " . $self->pings . " -q -B1 -i10 -r1 @{$self->addresses}";
 
       $self->do_debug("query=$query\n");
  
