--- a/chkconfig.c	2015-12-01 18:23:52.047031136 +0000
+++ b/chkconfig.c	2015-12-07 22:46:52.421553233 +0000
@@ -29,6 +29,7 @@
 #include <unistd.h>
 
 static char *progname;
+static char ignorePriorities;
 
 #define _(String) gettext((String))
 
@@ -148,7 +149,7 @@
 }
 
 static inline int laterThan(int i, int j) {
-	if (i <= j) {
+	if (!ignorePriorities && i <= j) {
 		i = j+1;
 		if (i > 99)
 			i = 99;
@@ -157,7 +158,7 @@
 }
 
 static inline int earlierThan(int i, int j) {
-	if (i >= j) {
+	if (!ignorePriorities && i >= j) {
 		i = j -1;
 		if (i < 0)
 			i = 0;
@@ -695,6 +696,7 @@
     bindtextdomain("chkconfig","/usr/share/locale");
     textdomain("chkconfig");
 
+    ignorePriorities = checkIgnorePriorities();
     optCon = poptGetContext("chkconfig", argc, argv, optionsTable, 0);
     poptReadDefaultConfig(optCon, 1);
 
--- a/leveldb.c	2015-12-07 19:48:15.052238953 +0000
+++ b/leveldb.c	2015-12-07 22:43:25.500120097 +0000
@@ -448,15 +448,22 @@
     return deps;
 }
 
+char checkIgnorePriorities() {
+    int fd = open(IGNORE_PRIORITIES_FLAG, O_RDONLY);
+    char ret = fd < 0 ? 0 : 1;
+    close(fd);
+    return ret; 
+}
 
 int parseServiceInfo(int fd, char * name, struct service * service, int honorHide, int partialOk) {
     struct stat sb;
     char * bufstart, * bufstop, * start, * end, * next, *tmpbufstart;
+    char ignorePriorities = checkIgnorePriorities();
     struct service serv = {
 		    name: NULL,
 		    levels: -1,
-		    kPriority: 100,
-		    sPriority: -1,
+		    kPriority: (ignorePriorities ? 50 : 100),
+		    sPriority: (ignorePriorities ? 50 : -1),
 		    currentLevels: 0,
 		    desc: NULL,
 		    startDeps: NULL,
@@ -526,7 +533,7 @@
 	    }
 	}
 
-	if (!strncmp(start, "chkconfig:", 10)) {
+	if (!ignorePriorities && !strncmp(start, "chkconfig:", 10)) {
 	    int spri, kpri;
 
 	    start += 10;
--- a/leveldb.h	2015-12-07 21:01:24.418808908 +0000
+++ b/leveldb.h	2015-12-07 22:49:34.131868047 +0000
@@ -34,6 +34,10 @@
 #define SYSTEMD_LOCAL_SERVICE_PATH "/etc/systemd/system"
 #endif
 
+#ifndef IGNORE_PRIORITIES_FLAG
+#define IGNORE_PRIORITIES_FLAG "/etc/init.d/ignore_priorities"
+#endif
+
 struct dep {
     char *name;
     int handled;
@@ -61,6 +65,7 @@
 int readServiceInfo(char * name, int type, struct service * service, int honorHide);
 int readServices(struct service **services);
 int readServiceDifferences(char * name, int type, struct service * service, struct service * service_overrides, int honorHide);
+char checkIgnorePriorities();
 int parseServiceInfo(int fd, char * name, struct service * service, int honorHide, int partialOk);
 int currentRunlevel(void);
 int isOn(char * name, int where);