diff --git a/src/buffer.c b/src/buffer.c
index 0bf6aa9..b536be6 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -5856,11 +5856,9 @@
 	newsign->lnum = lnum;
 	newsign->typenr = typenr;
 	newsign->next = next;
-#ifdef FEAT_NETBEANS_INTG
 	newsign->prev = prev;
 	if (next != NULL)
 	    next->prev = newsign;
-#endif
 
 	if (prev == NULL)
 	{
@@ -5905,38 +5903,29 @@
 	    sign->typenr = typenr;
 	    return;
 	}
-	else if (
-#ifndef FEAT_NETBEANS_INTG  /* keep signs sorted by lnum */
-		   id < 0 &&
-#endif
-			     lnum < sign->lnum)
+	else if (lnum < sign->lnum)
 	{
-#ifdef FEAT_NETBEANS_INTG /* insert new sign at head of list for this lnum */
-	    /* XXX - GRP: Is this because of sign slide problem? Or is it
-	     * really needed? Or is it because we allow multiple signs per
-	     * line? If so, should I add that feature to FEAT_SIGNS?
-	     */
+	    // keep signs sorted by lnum: insert new sign at head of list for
+	    // this lnum
 	    while (prev != NULL && prev->lnum == lnum)
 		prev = prev->prev;
 	    if (prev == NULL)
 		sign = buf->b_signlist;
 	    else
 		sign = prev->next;
-#endif
 	    insert_sign(buf, prev, sign, id, lnum, typenr);
 	    return;
 	}
 	prev = sign;
     }
-#ifdef FEAT_NETBEANS_INTG /* insert new sign at head of list for this lnum */
-    /* XXX - GRP: See previous comment */
+
+    // insert new sign at head of list for this lnum
     while (prev != NULL && prev->lnum == lnum)
 	prev = prev->prev;
     if (prev == NULL)
 	sign = buf->b_signlist;
     else
 	sign = prev->next;
-#endif
     insert_sign(buf, prev, sign, id, lnum, typenr);
 
     return;
@@ -6008,10 +5997,8 @@
 	if (sign->id == id)
 	{
 	    *lastp = next;
-#ifdef FEAT_NETBEANS_INTG
 	    if (next != NULL)
 		next->prev = sign->prev;
-#endif
 	    lnum = sign->lnum;
 	    vim_free(sign);
 	    break;
@@ -6067,7 +6054,9 @@
 
 
 # if defined(FEAT_NETBEANS_INTG) || defined(PROTO)
-/* see if a given type of sign exists on a specific line */
+/*
+ * See if a given type of sign exists on a specific line.
+ */
     int
 buf_findsigntype_id(
     buf_T	*buf,		/* buffer whose sign we are searching for */
@@ -6085,7 +6074,9 @@
 
 
 #  if defined(FEAT_SIGN_ICONS) || defined(PROTO)
-/* return the number of icons on the given line */
+/*
+ * Return the number of icons on the given line.
+ */
     int
 buf_signcount(buf_T *buf, linenr_T lnum)
 {
diff --git a/src/structs.h b/src/structs.h
index f978f61..3c2bf3f 100644
--- a/src/structs.h
+++ b/src/structs.h
@@ -704,9 +704,7 @@
     linenr_T	lnum;		/* line number which has this sign */
     int		typenr;		/* typenr of sign */
     signlist_T	*next;		/* next signlist entry */
-# ifdef FEAT_NETBEANS_INTG
     signlist_T  *prev;		/* previous entry -- for easy reordering */
-# endif
 };
 
 /* type argument for buf_getsigntype() */
diff --git a/src/version.c b/src/version.c
index 6f75233..6912210 100644
--- a/src/version.c
+++ b/src/version.c
@@ -795,6 +795,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    384,
+/**/
     383,
 /**/
     382,
