diff --git a/src/configure.in b/src/configure.in
index 4bfd0f47a501423977e6cca96918dcec02b398f3..24a12286f0ed095d6a372c27615b738a48230df5 100644
--- a/src/configure.in
+++ b/src/configure.in
@@ -4557,7 +4557,6 @@ AC_CHECK_FUNCS( \
  strerror \
  times \
  tzset \
- vsprintf \
  _snprintf \
  snprintf \
  vsnprintf \
diff --git a/src/port.c b/src/port.c
index 16308899fdb230423c7097ccb2650840f2a6ef84..02cd4129ba48b96f9f06dcb8766e5da549a09506 100644
--- a/src/port.c
+++ b/src/port.c
@@ -262,78 +262,6 @@ PMOD_EXPORT int STRCASECMP(const char *a,const char *b)
 }
 #endif
 
-#ifndef HAVE_VSPRINTF
-PMOD_EXPORT int VSPRINTF(char *buf,const char *fmt,va_list args)
-{
-  char *b=buf;
-  char *s;
-
-  int tmpA;
-  char fmt2[120];
-  char *fmt2p;
-
-  fmt2[0]='%';
-  for(;(s=strchr(fmt,'%'));fmt=s)
-  {
-    memcpy(buf,fmt,s-fmt);
-    buf+=s-fmt;
-    fmt=s;
-    fmt2p=fmt2+1;
-    s++;
-  unknown_character:
-    switch((*(fmt2p++)=*(s++)))
-    {
-    default:
-      goto unknown_character;
-
-    case '*':
-      fmt2p--;
-      sprintf(fmt2p,"%d",va_arg(args,int));
-      fmt2p+=strlen(fmt2p);
-      goto unknown_character;
-
-    case 0:
-      Pike_fatal("Error in vsprintf format.\n");
-      return 0;
-
-    case '%':
-      *(buf++)='%';
-      break;
-
-    case 'p':
-    case 's':
-      *fmt2p=0;
-      sprintf(buf,fmt2,va_arg(args,char *));
-      buf+=strlen(buf);
-      break;
-
-    case 'd':
-    case 'c':
-    case 'x':
-    case 'X':
-      *fmt2p=0;
-      sprintf(buf,fmt2,va_arg(args,int));
-      buf+=strlen(buf);
-      break;
-
-    case 'f':
-    case 'e':
-    case 'E':
-    case 'g':
-      *fmt2p=0;
-      sprintf(buf,fmt2,va_arg(args,double));
-      buf+=strlen(buf);
-      break;
-    }
-  }
-  tmpA=strlen(fmt);
-  memcpy(buf,fmt,tmpA);
-  buf+=tmpA;
-  *buf=0;
-  return buf-b;
-}
-#endif
-
 #ifndef HAVE_VSNPRINTF
 /* Warning: It's possible to trick this with something like
  * snprintf("...%c...", 0). */
@@ -344,8 +272,8 @@ PMOD_EXPORT int VSNPRINTF(char *buf, size_t size, const char *fmt, va_list args)
     buf = alloca(size=1000);
   }
   buf[size - 1] = 0;
-  res = VSPRINTF (buf, fmt, args);
-  if (buf[size - 1]) Pike_fatal ("Buffer overflow in VSPRINTF.\n");
+  res = vsprintf (buf, fmt, args);
+  if (buf[size - 1]) Pike_fatal ("Buffer overflow in vsprintf.\n");
   return res;
 }
 #endif
diff --git a/src/port.h b/src/port.h
index 3f286a4f68c57e33a6d6a69740e271011942597e..1029e03e4ac9fde5fab5e6c34bd740a7dafdb816 100644
--- a/src/port.h
+++ b/src/port.h
@@ -194,11 +194,8 @@ char *strchr(const char *s,int c);
 #define HAVE_VFPRINTF 1
 #define VFPRINTF vfprintf
 
-#ifndef HAVE_VSPRINTF
-PMOD_EXPORT int VSPRINTF(char *buf,const char *fmt,va_list args);
-#else
-#  define VSPRINTF vsprintf
-#endif
+#define HAVE_VSPRINTF 1
+#define VSPRINTF vsprintf
 
 #ifndef HAVE_VSNPRINTF
 PMOD_EXPORT int VSNPRINTF(char *buf, size_t size, const char *fmt, va_list args);