diff --git a/src/sbbs3/ctrl/NodeFormUnit.cpp b/src/sbbs3/ctrl/NodeFormUnit.cpp
index c533aeee146d87c4be99e6600973dc22ec84dc21..0753194d7970b011f9cb68665962aaf0cfed1035 100644
--- a/src/sbbs3/ctrl/NodeFormUnit.cpp
+++ b/src/sbbs3/ctrl/NodeFormUnit.cpp
@@ -390,6 +390,21 @@ void __fastcall TNodeForm::LockNodeButtonClick(TObject *Sender)
 }
 //---------------------------------------------------------------------------
 
+void __fastcall TNodeForm::RerunNodeButtonClick(TObject *Sender)
+{
+	int i;
+    node_t node;
+
+    for(i=0;i<ListBox->Items->Count;i++)
+    	if(ListBox->Selected[i]==true) {
+        	getnodedat(&MainForm->cfg,i+1,&node,1);
+            node.misc^=NODE_RRUN;
+            putnodedat(&MainForm->cfg,i+1,&node);
+        }
+}
+
+//---------------------------------------------------------------------------
+
 void __fastcall TNodeForm::ListBoxKeyPress(TObject *Sender, char &Key)
 {
 	if(Key==1) // ctrl-a
@@ -481,3 +496,23 @@ void __fastcall TNodeForm::SpyButtonClick(TObject *Sender)
 }
 //---------------------------------------------------------------------------
 
+void __fastcall TNodeForm::UserEditButtonClick(TObject *Sender)
+{
+    int     i;
+    char    str[128];
+    node_t  node;
+
+    for(i=0;i<ListBox->Items->Count;i++)
+    	if(ListBox->Selected[i]==true) {
+        	getnodedat(&MainForm->cfg,i+1,&node,0);
+            if(node.useron==0)
+                continue;
+            sprintf(str,"%sUSEREDIT %s %d"
+                ,MainForm->cfg.exec_dir
+                ,MainForm->cfg.data_dir
+                ,node.useron);
+            WinExec(str,SW_SHOWNORMAL);
+        }
+}
+//---------------------------------------------------------------------------
+
diff --git a/src/sbbs3/ctrl/NodeFormUnit.dfm b/src/sbbs3/ctrl/NodeFormUnit.dfm
index 7ed44f7c083255b4c30bf9bd82ec039f9027d0ff..cc0c387a91964256b07bf012b9be1aa0ee32aba5 100644
--- a/src/sbbs3/ctrl/NodeFormUnit.dfm
+++ b/src/sbbs3/ctrl/NodeFormUnit.dfm
@@ -10,15 +10,15 @@ object NodeForm: TNodeForm
   DragMode = dmAutomatic
   Font.Charset = DEFAULT_CHARSET
   Font.Color = clWindowText
-  Font.Height = -11
+  Font.Height = -14
   Font.Name = 'MS Sans Serif'
   Font.Style = []
   OldCreateOrder = False
   Position = poDefault
   OnHide = FormHide
   OnShow = FormShow
-  PixelsPerInch = 96
-  TextHeight = 13
+  PixelsPerInch = 120
+  TextHeight = 16
   object Toolbar: TToolBar
     Left = 0
     Top = 0
@@ -65,38 +65,54 @@ object NodeForm: TNodeForm
       ImageIndex = 17
       OnClick = InterruptNodeButtonClick
     end
-    object ClearErrorButton: TToolButton
+    object RerunToolButton: TToolButton
       Left = 115
       Top = 0
+      Hint = 'Rerun Node(s)'
+      Caption = 'RerunToolButton'
+      ImageIndex = 55
+      OnClick = RerunNodeButtonClick
+    end
+    object ClearErrorButton: TToolButton
+      Left = 138
+      Top = 0
       Hint = 'Clear Errors on Node(s)'
       Caption = 'ClearErrorButton'
-      ImageIndex = 33
+      ImageIndex = 31
       OnClick = ClearErrorButtonClick
     end
+    object SpyButton: TToolButton
+      Left = 161
+      Top = 0
+      Hint = 'Spy on Node(s)'
+      Caption = 'SpyButton'
+      ImageIndex = 39
+      OnClick = SpyButtonClick
+    end
     object ChatButton: TToolButton
-      Left = 138
+      Left = 184
       Top = 0
       Hint = 'Chat with User'
       Caption = 'ChatButton'
-      ImageIndex = 39
+      ImageIndex = 37
       OnClick = ChatButtonClick
     end
-    object SpyButton: TToolButton
-      Left = 161
+    object UserEditButton: TToolButton
+      Left = 207
       Top = 0
-      Hint = 'Spy on Node(s)'
-      Caption = 'SpyButton'
-      ImageIndex = 41
-      OnClick = SpyButtonClick
+      Hint = 'Edit User'
+      Caption = 'UserEditButton'
+      ImageIndex = 27
+      OnClick = UserEditButtonClick
     end
   end
   object ListBox: TListBox
     Left = 0
     Top = 25
     Width = 269
-    Height = 162
+    Height = 157
     Align = alClient
-    ItemHeight = 13
+    ItemHeight = 16
     MultiSelect = True
     PopupMenu = PopupMenu
     TabOrder = 1
@@ -111,17 +127,22 @@ object NodeForm: TNodeForm
     Left = 128
     Top = 72
     object LockMenuItem: TMenuItem
-      Caption = 'Lock'
+      Caption = 'Lock Node'
       ImageIndex = 19
       OnClick = LockNodeButtonClick
     end
     object DownMenuItem: TMenuItem
-      Caption = 'Down'
+      Caption = 'Down Node'
       ImageIndex = 21
       OnClick = DownButtonClick
     end
+    object RerunMenuItem: TMenuItem
+      Caption = 'Rerun Node'
+      ImageIndex = 55
+      OnClick = RerunNodeButtonClick
+    end
     object InterruptMenuItem: TMenuItem
-      Caption = 'Interrupt'
+      Caption = 'Interrupt Node'
       ImageIndex = 17
       OnClick = InterruptNodeButtonClick
     end
@@ -131,7 +152,7 @@ object NodeForm: TNodeForm
       OnClick = ClearErrorButtonClick
     end
     object ChatMenuItem: TMenuItem
-      Caption = 'Chat with User'
+      Caption = 'Chat w/User'
       ImageIndex = 39
       OnClick = ChatButtonClick
     end
@@ -140,6 +161,12 @@ object NodeForm: TNodeForm
       ImageIndex = 41
       OnClick = SpyButtonClick
     end
+    object EditUser1: TMenuItem
+      Caption = 'Edit User'
+      Hint = 'EditUserMenuItem'
+      ImageIndex = 27
+      OnClick = UserEditButtonClick
+    end
     object N1: TMenuItem
       Caption = '-'
     end
diff --git a/src/sbbs3/ctrl/NodeFormUnit.h b/src/sbbs3/ctrl/NodeFormUnit.h
index 9dc407fc31990b3e559b51046f6709797ee6a644..1a383f4f03f60ba0b8d1613c5c780040727d9e0c 100644
--- a/src/sbbs3/ctrl/NodeFormUnit.h
+++ b/src/sbbs3/ctrl/NodeFormUnit.h
@@ -72,6 +72,10 @@ __published:	// IDE-managed Components
     TMenuItem *ChatMenuItem;
     TToolButton *SpyButton;
     TMenuItem *SpyMenuItem;
+    TToolButton *RerunToolButton;
+    TMenuItem *RerunMenuItem;
+    TToolButton *UserEditButton;
+    TMenuItem *EditUser1;
 	void __fastcall FormShow(TObject *Sender);
 	void __fastcall TimerTick(TObject *Sender);
     void __fastcall FormHide(TObject *Sender);
@@ -83,6 +87,8 @@ __published:	// IDE-managed Components
     void __fastcall ClearErrorButtonClick(TObject *Sender);
     void __fastcall ChatButtonClick(TObject *Sender);
     void __fastcall SpyButtonClick(TObject *Sender);
+    void __fastcall RerunNodeButtonClick(TObject *Sender);
+    void __fastcall UserEditButtonClick(TObject *Sender);
 private:	// User declarations
 public:		// User declarations
      __fastcall TNodeForm(TComponent* Owner);