Index: /trunk/include/slib.h
===================================================================
--- /trunk/include/slib.h	(revision 242)
+++ /trunk/include/slib.h	(revision 243)
@@ -118,4 +118,18 @@
 
 #define SL_EISDIR    -1055      /* Is a directory                      */
+
+#define SL_EINTERNAL01 -1061    /* Internal error.                      */
+#define SL_EINTERNAL02 -1062    /* Internal error.                      */
+#define SL_EINTERNAL03 -1063    /* Internal error.                      */
+#define SL_EINTERNAL04 -1064    /* Internal error.                      */
+#define SL_EINTERNAL05 -1065    /* Internal error.                      */
+#define SL_EINTERNAL06 -1066    /* Internal error.                      */
+#define SL_EINTERNAL07 -1067    /* Internal error.                      */
+#define SL_EINTERNAL08 -1068    /* Internal error.                      */
+#define SL_EINTERNAL09 -1069    /* Internal error.                      */
+#define SL_EINTERNAL10 -1070    /* Internal error.                      */
+#define SL_EINTERNAL11 -1071    /* Internal error.                      */
+#define SL_EINTERNAL12 -1072    /* Internal error.                      */
+
 /*
  * All int functions return SL_NONE on success.
Index: /trunk/src/slib.c
===================================================================
--- /trunk/src/slib.c	(revision 242)
+++ /trunk/src/slib.c	(revision 243)
@@ -1580,5 +1580,8 @@
 
   if (myindex >= MAXFD)
-    goto out_ticket;
+    {
+      retval = SL_EINTERNAL01;
+      goto out_ticket;
+    }
 
   /* mask out the high bit and check that it is not used
@@ -1587,6 +1590,9 @@
   high = (myindex + TOFFSET) & 0x7fff; 
 
-  if (high != myindex + TOFFSET) 
-    goto out_ticket;
+  if (high != myindex + TOFFSET)
+    {
+      retval = SL_EINTERNAL02;
+      goto out_ticket;
+    }
 
   SH_MUTEX_LOCK_UNSAFE(mutex_ticket);
@@ -1597,5 +1603,8 @@
    */
   if ((low != nonce_counter++) || low == 0)
-    goto out_ticket;
+    {
+      retval = SL_EINTERNAL03;
+      goto out_ticket;
+    }
  
   /* Wrap around the nonce counter.
@@ -1631,8 +1640,8 @@
 
   if ((of = ofiles[myindex])->fd < 0 || of->fd >= MAXFD )
-    return (SL_EINTERNAL);
+    return (SL_EINTERNAL04);
 
   if (((of->ticket) & 0xffff) == 0)
-    return (SL_EINTERNAL); 
+    return (SL_EINTERNAL05); 
 
   return (myindex); 
@@ -1653,5 +1662,5 @@
    if (ofiles[fd] != NULL)
     {
-      SL_IRETURN(SL_EINTERNAL, _("sl_make_ticket"));
+      SL_IRETURN(SL_EINTERNAL06, _("sl_make_ticket"));
     }
 
@@ -1741,5 +1750,5 @@
     SL_IRETURN(SL_ENULL, _("sl_open_file"));
   if (mode < SL_OPEN_MIN || mode > SL_OPEN_MAX)
-    SL_IRETURN(SL_EINTERNAL, _("sl_open_file"));
+    SL_IRETURN(SL_EINTERNAL07, _("sl_open_file"));
     
   /* "This system call always succeeds and the previous value of
@@ -1863,5 +1872,5 @@
     default:
       errno = 0;
-      SL_IRETURN(SL_EINTERNAL, _("sl_open_file"));
+      SL_IRETURN(SL_EINTERNAL08, _("sl_open_file"));
     }
 
@@ -1913,5 +1922,5 @@
     {
       close(fd);
-      SL_IRETURN(SL_EINTERNAL, _("sl_open_file"));
+      SL_IRETURN(SL_EINTERNAL09, _("sl_open_file"));
     }
 
@@ -1961,5 +1970,5 @@
 
   if (ofiles[fd] == NULL || fd != ofiles[fd]->fd || fd < 0)
-    return (SL_EINTERNAL);
+    return (SL_EINTERNAL10);
   return (fd);
 }
@@ -1972,5 +1981,5 @@
     SL_IRETURN(SL_ENULL, _("check_fname_priv"));
   if (priv != SL_YESPRIV && priv != SL_NOPRIV)
-    SL_IRETURN(SL_EINTERNAL, _("check_fname_priv"));
+    SL_IRETURN(SL_EINTERNAL11, _("check_fname_priv"));
   SL_IRETURN(SL_ENONE, _("check_fname_priv"));
 }
@@ -2140,5 +2149,5 @@
 
   if (ofiles[fd] == NULL || fd != ofiles[fd]->fd || fd < 0)
-    return (SL_EINTERNAL);
+    return (SL_EINTERNAL12);
 
   if (ofiles[fd]->content)
@@ -2721,4 +2730,28 @@
     case SL_EINTERNAL: 
       return _("Internal error");
+    case SL_EINTERNAL01: 
+      return _("Internal error 01");
+    case SL_EINTERNAL02: 
+      return _("Internal error 02");
+    case SL_EINTERNAL03: 
+      return _("Internal error 03");
+    case SL_EINTERNAL04: 
+      return _("Internal error 04");
+    case SL_EINTERNAL05: 
+      return _("Internal error 05");
+    case SL_EINTERNAL06: 
+      return _("Internal error 06");
+    case SL_EINTERNAL07: 
+      return _("Internal error 07");
+    case SL_EINTERNAL08: 
+      return _("Internal error 08");
+    case SL_EINTERNAL09: 
+      return _("Internal error 09");
+    case SL_EINTERNAL10: 
+      return _("Internal error 10");
+    case SL_EINTERNAL11: 
+      return _("Internal error 11");
+    case SL_EINTERNAL12: 
+      return _("Internal error 12");
     case SL_ETICKET:
       return _("Bad ticket");
