diff --git a/lib/master.pike.in b/lib/master.pike.in
index b6e1a6be56b849b97822ad309e93874a24d6a086..f373567c3e0f605aa3f893cb5608d3c1a85391e7 100644
--- a/lib/master.pike.in
+++ b/lib/master.pike.in
@@ -1,4 +1,4 @@
-/* $Id: master.pike.in,v 1.28 1998/05/13 07:36:56 hubbe Exp $
+/* $Id: master.pike.in,v 1.29 1998/05/19 20:39:20 hubbe Exp $
  * 
  * Master-file for Pike.
  *
@@ -211,13 +211,16 @@ static program low_findprog(string pname, string ext)
     {
     case "":
     case ".pike":
-      if( (s=master_file_stat(fname+".o"))  && s[1]>=0 )
-      {
-	mixed err=catch {
-	  return decode_value(_static_modules.files()->Fd(fname+".o","r")->read(),Codec());
-	};
-	if(want_warnings)
-	  werror("Failed to decode %s.o\n",fname);
+      if(array s2=master_file_stat(fname+".o"))
+      {	
+	if(s2[1]>=0 && s2[2]>=s[2])
+	{
+	  mixed err=catch {
+	    return decode_value(_static_modules.files()->Fd(fname+".o","r")->read(),Codec());
+	  };
+	  if(want_warnings)
+	    werror("Failed to decode %s.o\n",fname);
+	}
       }
       if ( mixed e=catch { ret=compile_file(fname); } )
       {